Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#5

Re: Datendatei gegen Manipulation schützen

  Alt 20. Feb 2007, 18:48
Dann reicht also doch die Lösung mit dem Hash.

Wenn die Daten der Reihe nach in die Datei geschrieben werden, dann wäre es sogar möglich den Hash gleich wärend der Speicherung zu erstellen, ansonsten muß ja z.B. beim Schließen der Hash über die ganze Datei gebildet werden.

Für erstere Methode (beim Speichern gleich mit Hashen) könnte man zich z.B. die Schreibfunktion überladen und das Hashen da integrieren, damit müßte dann nur beim Erstellen und Schließen der Datei die Hashfunktion initialisiert und finalisiert
und natürlich der Hash gespeichert werden.

z.B.:
Delphi-Quellcode:
Var Hash: ...;

Function Write(aFile: TFile; Datensatz: TDatensatz);
  Begin
    UpdateHash(@Datensatz, SizeOf(TDatensatz), Hash);
    System.Write(aFile, Datensatz);
  End;
Den Hash kannst du z.B. in einer weiteren Datei abspeichern.
xyz.log < die zu schützenden Daten
xyz.sec < die Sicherheitsdaten (der Hash)

Wenn du den Hash mit in der Datendatei ablegen willst, dann geht das natürlich nicht wenn der Hash über die gesamte Datei errechnet wird ... der Hashwert muß da ausgeschlossen werden,
denn dieser würde ja sonst den errechneten Hash wieder verändern.

[add]
Was die Sicherheit angeht, dann solltest du natürlich nicht inen überallbekantes Hashverfahren über die gesamte Datei erstellen

Nimm einen unbekannteren, oder ändere den Hash am ende noch etwas ab,
oder Rechner einfach noch weitere Werte mit ein.

Wenn die nicht wissen was das für ein Hashverfahren ist, oder wie/worüber es erstellt wurde, dann können die es auch nicht fälschen (wenn es keine "Profis" sind, so wie du sagtest)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat