Entwickler-Ecke

Dateizugriff - Prüfsumme von Dateien


Nano-Ware - So 22.07.12 13:52
Titel: Prüfsumme von Dateien
Hey,

ich möchte gerne überprüfen, ob eine Sprachdatei meines Programmes verändert wurde. Die Sprachdateien sind eine XML-artige Dateien. Ich habe mir gedacht ich erstelle eine Prüfsumme und vergleiche sie dann jedes Mal. Nur: Wie erstelle ich eine Prüfsumme und vor Allem welche Prüfsummentechnik soll ich verwenden?

Danke!


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 22.07.2012 um 14:24


Narses - So 22.07.12 14:24

Moin!

Wenn es wirklich nur um die Erkennung von Änderungen geht, nimm MD5. In der Unit, die ich dafür verwende, ist auch eine extrem schnelle MD5File-Methode drin, die das mit MMF macht. :idea:

cu
Narses


BenBE - So 22.07.12 14:26

Für Prüfsummen gibt es eine ganze Menge an Bibliotheken, wobei das DEC von negaH wohl mit das bekannteste ist. Alternativ schwirren ja immer zahlreiche andere Libs rum.

Im Prinzip ist es egal, welche der verschiedenen Prüfsummenverfahren du nimmst; wichtig ist im Endeffekt nur, dass sie die von dir gewünschten Änderungen erkennen. Alles oberhalb von CRC32 bedarf schon einer expliziten Manipulation und CRC32 ist für normale Veränderungen auch gegen Kollissionen gefeit und damit für ein einfaches "ich möchte prüfen, ob die Datei geändert ist" durchaus zu gebrauchen.

Erst wenn man Kryptographie machen will, reichen weder MD5 noch SHA1 allein nicht mehr aus und man muss die größeren Geschütze auffahren, aber das ist bei Dir jetzt nicht nötig.

Soviel zum Vorgeplänkel, nun zur Umsetzung: Nimm eine beliebige Bibliothek, die eine Prüfsumme (oder verschiedene) berechnen kann, bau sie ein und schau, dass das Ergebnis mit dem passt, was Du brauchst. That's it ;-)


Nano-Ware - So 22.07.12 14:38

Wo finde ich denn eine vorgefertigte Unit dafür? (Beliebige Checksumme, die halt den Unterschied zwischen "Size:255" und "Size:256" erkennen sollte.)


Narses - So 22.07.12 14:45

Moin!

10 Sekunden suchen :lupe: lieferte diesen Thread hier [http://www.entwickler-ecke.de/viewtopic.php?t=91234] in der EE, da ist etwas im Anhang des ersten Beitrags enthalten. :les: :idea: da hätte man auch noch selbst drauf kommen können, oder?

cu
Narses