Was ein MD5-Hash ist
MD5 ist eine Hashfunktion. Sie nimmt eine beliebige Eingabe, von einem Buchstaben bis zu einer großen Datei, und erzeugt einen Fingerabdruck fester Größe von 128 Bit, meist geschrieben als 32 Hex-Zeichen. Dieselbe Eingabe ergibt immer denselben Hash. Eine winzige Änderung, auch nur ein Zeichen, ergibt einen völlig anderen Hash.
Ron Rivest hat MD5 1992 veröffentlicht. Es ist bis heute verbreitet für Prüfsummen auf Downloadseiten, zum Finden doppelter Dateien, für Cache-Schlüssel und für eine schnelle Erkennung von Änderungen. Als sicher gilt es nicht mehr, dazu unten mehr.
So nutzt du den MD5 Generator
Text hashen. Lass unter Hash von die Option Text ausgewählt und tippe oder füge Text in das Feld ein. Die Hashes aktualisieren sich beim Tippen. Text wird als UTF-8 gehasht, genau so, wie er eingegeben wurde, mit Leerzeichen und Zeilenumbrüchen.
Datei hashen. Klicke auf Datei und wähl eine Datei bis 500 MB. Die Datei wird auf deinem Gerät gelesen. Dateiname und Größe in Bytes werden angezeigt, sobald die Hashes fertig sind.
Ergebnisse lesen. Der Bereich Hashes zeigt vier Ergebnisse:
- MD5, hervorgehoben, 32 Hex-Zeichen
- SHA-1, 40 Zeichen
- SHA-256, 64 Zeichen
- SHA-512, 128 Zeichen
Jedes hat eine eigene Schaltfläche Kopieren. Klicke auf Großbuchstaben, wenn du sie großgeschrieben brauchst.
Mit bekanntem Hash vergleichen. Füge eine Prüfsumme von einer Downloadseite in dieses Feld ein. Das Tool vergleicht sie mit allen vier Ergebnissen und sagt dir, welches passt. Passt keins, schließt es aus der Länge deines Hashes, welcher Algorithmus es sein könnte.
So funktioniert MD5
MD5 füllt die Eingabe auf ein Vielfaches von 512 Bit auf und verarbeitet sie in Blöcken. Jeder Block durchläuft 64 Runden Bitmischung, die Additionen, Rotationen und logische Operationen kombinieren. Der Endzustand aus vier 32-Bit-Wörtern ist der Hash. Weil so viel gemischt wird, sieht die Ausgabe zufällig aus und ändert sich komplett, wenn sich irgendein Bit der Eingabe ändert. Das nennt man Lawineneffekt.
Beispiele
| Eingabe | MD5 |
|---|---|
| (leer) | d41d8cd98f00b204e9800998ecf8427e |
abc |
900150983cd24fb0d6963f7d28e17f72 |
hello |
5d41402abc4b2a76b9719d911017c592 |
Hello |
8b1a9953c4611296a827abf8c47804d7 |
Hello, World! |
65a8e27d8879283831b664bd8b7f0ad4 |
The quick brown fox jumps over the lazy dog |
9e107d9d372bb6826bd81d3542a419d6 |
The quick brown fox jumps over the lazy dog. |
e4d909c290d0fb1ca068ffaddf22cbd0 |
Die letzten beiden Zeilen unterscheiden sich nur durch einen Punkt, und doch haben die Hashes nichts gemeinsam.
Dieselbe Eingabe, abc, mit den anderen Algorithmen:
| Algorithmus | Hash von abc |
|---|---|
| SHA-1 | a9993e364706816aba3e25717850c26c9cd0d89d |
| SHA-256 | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
Umlaute und die Kodierung
Ein Hash wird über Bytes berechnet, nicht über Buchstaben. Bei deutschen Wörtern mit Umlauten kommt es deshalb darauf an, wie der Text kodiert wurde. Dieses Tool nutzt UTF-8, und damit ergibt „Grüße“ den MD5 49c5f675b49037b6044b803ac9d1a6d7. Ein Programm, das denselben Text in Latin-1 (ISO-8859-1) kodiert, kommt auf 2c987648c54e9054bf8c8c916b17d5c0. Beide sind richtig, nur für unterschiedliche Bytes. Wenn dein Hash nicht zu dem eines anderen Systems passt, ist die Kodierung bei Text mit Umlauten der erste Verdächtige.
Sicherheit: wofür MD5 taugt und wofür nicht
In Ordnung: prüfen, ob eine Datei unbeschädigt angekommen ist, doppelte Dateien finden, Cache-Schlüssel bauen und IDs ohne Sicherheitsbezug.
Nicht in Ordnung: Passwörter, digitale Signaturen, Zertifikate oder der Nachweis, dass niemand eine Datei absichtlich verändert hat. Praktische Kollisionsangriffe gegen MD5 sind seit 2004 öffentlich. Angreifer können zwei verschiedene Dateien mit demselben MD5 erzeugen.
Passwörter brauchen einen langsamen Hash. Selbst SHA-256 ist für Passwörter zu schnell. Nimm bcrypt, scrypt oder Argon2, die dafür gebaut sind, das Raten zu bremsen. Ein einfacher MD5-Passwort-Hash wie 5f4dcc3b5aa765d61d8327deb882cf99 (das Wort „password“) wird von jeder Nachschlageseite sofort erkannt.
Andere Wege, einen MD5-Hash zu bekommen
Linux. md5sum file.zip gibt Hash und Dateinamen aus. echo -n hello | md5sum hasht Text. Lässt du -n weg, wird der Zeilenumbruch mitgehasht.
macOS. md5 file.zip, oder md5 -s hello für Text.
Windows. certutil -hashfile file.zip MD5 in der Eingabeaufforderung oder Get-FileHash file.zip -Algorithm MD5 in PowerShell.
Python. hashlib.md5(b'hello').hexdigest() liefert 5d41402abc4b2a76b9719d911017c592.
Node.js. require('crypto').createHash('md5').update('hello').digest('hex') liefert denselben Wert.
Ähnliche Tools
Du brauchst ein Passwort statt eines Hashes? Nimm den Passwort Generator. Für eindeutige IDs passt der UUID Generator besser, als Zufallsdaten zu hashen. Um Binärdaten als Text zu kodieren, schau bei Base64 kodieren und dekodieren vorbei.