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)