Autor Beitrag
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Sa 03.02.07 15:19 
Hallo,
in meinem Programm habe ich Daten, die ich speichern möchte. Allerdings darf es für den Benutzer auch nicht grad sehr leicht die Daten zu verändern. Deshalb habe ich mein INI- Speicherung(obwohl diese sehr gut ging) aufgegeben. Welches anderen Möglichkeiten habe ich denn da? Soll ich vielleicht Datenbanken verwenden? Ich weiß auch, dass es absolute Sicherheit nicht gibt. Aber wenigstens sollte man mit nicht grad sehr einfach die Daten verändern können(Sehen kann man sie von mir aus).

MfG
Regan

[meta]Verschlüsslung, verschlüsseln, verschluesseln, verschluesslung[/meta]
Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am Sa 03.02.2007 um 14:35
//Edit: Meta-Daten hinzugefügt


Zuletzt bearbeitet von Regan am So 04.02.07 14:16, insgesamt 2-mal bearbeitet
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 03.02.07 15:53 
kommt auf die anzahl und die häufigkeit deiner zugriffe an. wenn du nur wenige daten hast und auf diese selten zugegriffen werden kannst du auch die ini beibehalten, alternativ XML. wenn du jedoch mehrere leute hast, die auf die selben daten zugreiffen sollen, brauchst du 'n locking mechanismus... kannst dir ja auch selbst basten.

wenns nur darum geht die daten nicht anzuzeigen und es etwas zu erschweren diese zu ändern, kannst ja 'n prüfalgo drüberlaufen lassen und diesen mit speichern. stichwort hier MD5. dann kannst du immer prüfen ob deine daten noch stimmig sind.
Regan Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Sa 03.02.07 16:16 
user profile iconGrenzgaenger hat folgendes geschrieben:
kommt auf die anzahl und die häufigkeit deiner zugriffe an.

Am Anfang des Programms, am Ende und manchmal noch in der Mitte. Summa summarum häufig.
user profile iconGrenzgaenger hat folgendes geschrieben:
wenn du nur wenige daten hast und auf diese selten zugegriffen werden kannst du auch die ini beibehalten, alternativ XML.

Ich hab sehr viele Daten. Der User fügt die Daten ja immer wieder neu hinzu oder aktualliseirt welche.
user profile iconGrenzgaenger hat folgendes geschrieben:
wenn du jedoch mehrere leute hast, die auf die selben daten zugreiffen sollen, brauchst du 'n locking mechanismus... kannst dir ja auch selbst basten.

Mehrere Leute hab ich nicht. Es soll immer nur eine solche Datei auf dem PC vorhanden sein. (Am besten wäre es, wenn ich die Datei zu nem anderem PC mitnehmen kann und dort dann als Datei einfügen könnte.
Und wie schreib ich mir nen Locking mechanismus?

user profile iconGrenzgaenger hat folgendes geschrieben:
wenns nur darum geht die daten nicht anzuzeigen und es etwas zu erschweren diese zu ändern, kannst ja 'n prüfalgo drüberlaufen lassen und diesen mit speichern. stichwort hier MD5. dann kannst du immer prüfen ob deine daten noch stimmig sind.

Bei MD5 kann man den Hashwert nicht mehr zurückumwandeln Ich will aber auch die Daten auslesen.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Sa 03.02.07 16:36 
also MD5 kannst du nur nehmen, wenn du prüfen willst, ob man die Datei manipuliert hat.
Wenn du was verschlüsseln möchtest, würde ich dir das Delphi Encryption Compendium empfehlen.

Alternativ kannst du auch mal im Forum nach Verschlüsselung rumsuchen. Ich glaube da kuriseren ein paar Links zu anderen Komponenten, die dir helfen würden.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Sa 03.02.07 16:39 
Kommt drauf an, wie sicher du es haben willst. Wenn es dir reicht, dass ein mindermäßig begabtes scriptkiddy nicht auf die daten zugreifen will, würde wohl eine ini mit anschließender polyalphabetischer Verschlüsselung mit hard-gecodetem passwort reichen, wenns sicherer sein soll, .. tja.. Dann könntest du eine komplizierte kombination von passwort als hash generieren, verschlüsseln, in datei speichern, blah blah machen ^^ Aber ich bin grad etwas dusselig im Kopf, wahrscheinlich hab ich ein paar wichtige einzelheiten verwechselt oder so ... :|

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Regan Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Sa 03.02.07 17:14 
user profile iconmatze hat folgendes geschrieben:
also MD5 kannst du nur nehmen, wenn du prüfen willst, ob man die Datei manipuliert hat.
Wenn du was verschlüsseln möchtest, würde ich dir das Delphi Encryption Compendium empfehlen.

Das Problem is nur, dass sich die Datei immer wieder verändert.
Ich weerd mal n bissl konkreter. Ich hab das hier:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
type
  Tets = record
    anzeige:String;
    wert:Integer;
    pfad:String;
    anwendung:String;
  end;
{...}
var
  Form2: TForm2;
  ETS: array[0..4of Tets;

So und ich möchte jetzt nicht, dass
user profile iconJayEff hat folgendes geschrieben:
ein mindermäßig begabtes scriptkiddy auf [den] daten
-satz "Wert" zugreifen kann. Wie macht man das mit
user profile iconJayEff hat folgendes geschrieben:
eine ini mit anschließender polyalphabetischer Verschlüsselung mit hard-gecodetem passwort reichen

Dsa ist vollkommen außreichend
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Sa 03.02.07 17:31 
Kein problem. Ich weis nicht, wie du deinen Datensatz speichern willst, vielleicht mit einer Typisierten Datei, nur dann müsstest du die Strings begrenzen...
Wie auch immer, nach dem du gespeichert hast, lädst du die gespeicherte Datei z.B. in eine TStringList und verschlüsselst sie mit einem Algorithmus wie z.B.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function encode(text, key: String):String;
var i,keypos:integer;
begin
  keypos:=1;
  for i:=1 to length(text) do
  begin
    Result:=Result+char(byte(ord(text[i])+ord(key[keypos])));
    inc(keypos);
    if keypos > length(key) then
      keypos:=1;
  end;
end;

Beim entschlüsseln einfach ein - statt ein +.
Einfach wieder Speichern und das ganze ist verschlüsselt. Am besten hälst die Datensätze aber im Speicher und lädst/speicherst nur einmal, das ist dann wohl die schnellste lösung.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Regan Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Sa 03.02.07 18:20 
OK werd ich so machen. Danke.