Inhaltsverzeichnis
Syntax
Befehl | cpMD5File(sNewFileName:String;) |
---|---|
Funktion | Erzeugt eine Prüfsumme/Hash einer Datei |
Typ | String |
ab | 3.2.4 build 467 |
Codebeispiel
var; sFileNameMd5 : String; begin sFileNameMd5 := cpMD5File(C:\LogAddOn.txt) + '.txt' ; cpShowMessage(sFileNameMd5); end.
Als Resultat erhält man einen Dateinamen, der einer Prüfsumme nach dem MD5 Verfahren entspricht.
Solche Prüfsummen, auch Hash genannt, nutzt man z.B., um bei heruntergeladenen Dateien sicherzustellen, dass man eine unveränderte, dem Originial entsprechende Datei auf den Rechner geladen hat.
Das Beispiel oben ist fiktiv. Aber ich habe den Hash-Wert der Datei LogSystem.txt, die bei mir im Cockpit Datenverzeichnis liegt, ermittelt.
Der daraus resultierende Dateiname ist 237DC8D1D8583941ABDE2C67E602C72E.txt
Ändere ich innerhalb dieser Textdatei nur ein einzelnes Zeichen, ergibt sich eine auf den ersten Blick vollkommen unterschiedliche Prüfsumme. Wird der Cockpit-Befehl dann erneut ausgeführt, würde die Datei plötzlich so heißen: F80243DFF7F7F0708B24C6B9DB33BD73.txt
Ich habe lediglich die Ziffer 1 am Ende eingefügt!!!
Wozu ist das gut? Nun, man kann auf diesem Weg z.B. doppelte Dateien finden. Gibt es zwei Dateien, die inhaltlich gleich sich, bekommen sie auch den gleichen Hash-Wert.
Prüft man jetzt so Dateien im AddOn-Ordner, z.B. Symbole, könnte man identische Dateien finden, löschen und so den Speicherplatz der Cockpit-Installation verschlanken.
Wichtig: Es muss der gesamte Verzeichnispfad angegeben werden. Das gilt auch, wenn ich die Datei mit der Prüfsumme als neuem Dateinahmen später wieder speichern will.
