Berechnen Sie das MD5-Hashing für eine Datei oder einen String mit Delphi

Der MD5-Message-Digest-Algorithmus ist eine kryptografische Hash-Funktion. MD5 wird häufig verwendet, um die Integrität von Dateien zu überprüfen und sicherzustellen, dass eine Datei nicht verändert wurde.

Ein Beispiel hierfür ist das Herunterladen eines Programms online. Wenn der Softwareverteiler den MD5-Hash der Datei ausgibt, können Sie den Hash mit Delphi erzeugen und dann die beiden Werte vergleichen, um sicherzustellen, dass sie identisch sind. Wenn sie sich unterscheiden, bedeutet dies, dass die von Ihnen heruntergeladene Datei nicht die von der Website angeforderte ist und daher möglicherweise böswillig ist.

Ein MD5-Hash-Wert ist 128 Bit lang, wird jedoch normalerweise in seinem 32-stelligen Hexadezimalwert gelesen.

Suchen des MD5-Hashs mit Delphi

Mit Delphi können Sie einfach eine Funktion erstellen, um den MD5-Hash für eine bestimmte Datei zu berechnen. Alles was Sie brauchen, ist in den beiden Einheiten enthalten IdHashMessageDigest und idHash, beide sind ein Teil von Indy.

Hier ist der Quellcode:

 Verwendet IdHashMessageDigest, idHash;
// gibt MD5 für eine Datei zurück
Funktion MD5 (const Dateiname : Zeichenfolge): Zeichenfolge;
var
  idmd5: TIdHashMessageDigest5;
  fs: TFileStream;
  Hash: T4x4LongWordRecord;
Start
  idmd5: = TIdHashMessageDigest5.Create;
  fs: = TFileStream.Create (Dateiname, fmOpenRead ODER fmShareDenyWrite);
  Versuchen
    Ergebnis: = idmd5.AsHex (idmd5.HashValue (fs));
  schließlich
    fs.Free;
    idmd5.Free;
  Ende;
Ende;

Andere Möglichkeiten zum Generieren der MD5-Prüfsumme

Neben Delphi gibt es noch andere Möglichkeiten, die MD5-Prüfsumme einer Datei zu ermitteln. Eine Methode ist die Verwendung von Microsoft File Checksum Integrity Verifier. Es ist ein kostenloses Programm, das nur unter Windows verwendet werden kann.

MD5 Hash Generator ist eine Website, die etwas Ähnliches tut, aber anstatt die MD5-Prüfsumme einer Datei zu erstellen, erfolgt dies aus einer beliebigen Folge von Buchstaben, Symbolen oder Zahlen, die Sie in das Eingabefeld eingeben.