Datei-MD5-Verifizierungstool
MD5-Hash-Wert von Dateien berechnen, Datei-Integrität verifizieren
Datei hierher ziehen und ablegen
Alle Dateitypen und Größen unterstützt
Was ist Datei-MD5?
MD5 (Message-Digest Algorithm 5) ist ein weit verbreiteter Hash-Algorithmus, der beliebigen Dateiinhalt auf einen 128-Bit-Digest fester Länge (32 Hexadezimalzeichen) abbildet. Kleinste Änderungen im Dateiinhalt führen zu völlig anderen MD5-Werten. Das Datei-MD5-Verifizierungswerkzeug wird häufig zur Überprüfung der Dateiintegrität eingesetzt, um sicherzustellen, dass Dateien während der Übertragung oder beim Download nicht manipuliert oder beschädigt wurden. Datei-MD5 wird häufig genutzt, um schnell zu prüfen, ob eine Datei unverändert geblieben ist oder mit einer veröffentlichten Prüfsumme übereinstimmt. Der Algorithmus ist sehr verbreitet und schnell, gilt aber wegen bekannter Kollisionsangriffe nicht mehr als sicher für kryptografische Vertrauensentscheidungen. Für Download-Checks alter Software oder einfache Duplikaterkennung kann MD5 noch vorkommen; bei sicherheitsrelevanter Integritätsprüfung sind SHA-256 oder stärkere Verfahren vorzuziehen.
So geht's
So geht's
- Klicken Sie auf den Upload-Bereich oder ziehen Sie eine Datei auf die Seite
- Klicken Sie auf die Schaltfläche ‚MD5 berechnen'
- Warten Sie, bis die Berechnung abgeschlossen ist, und sehen Sie sich den MD5-Wert an
- Im Verifizierungsbereich können Sie einen bekannten MD5-Wert eingeben und vergleichen
Einschränkungen bei der Verifizierung
- MD5 eignet sich für schnelle Dateiidentitätsprüfungen, ist jedoch nicht kollisionsresistent genug für sicherheitskritische Überprüfungen.
- Vergleichen Sie Hashes für Downloads oder Releases immer mit Werten aus einer vertrauenswürdigen Quelle und bevorzugen Sie SHA-256, wenn verfügbar.
Anwendungsfälle
Technisches Prinzip
MD5 ist der in RFC 1321 (Ron Rivest, 1992) definierte Message-Digest Algorithm 5. Er erzeugt einen 128-Bit / 16-Byte-Digest, dargestellt als 32 hexadezimale Zeichen. Der Algorithmus folgt der Merkle-Damgård-Konstruktion: Die Eingabe wird so gepaddet, dass ihre Bitlänge kongruent zu 448 mod 512 ist (ein 1-Bit gefolgt von Nullen), die ursprüngliche Länge wird als 64-Bit-Little-Endian-Integer angehängt und die gepaddete Nachricht wird in 512-Bit-Blöcke geteilt. Jeder Block aktualisiert einen 128-Bit-internen Zustand (A, B, C, D), initialisiert auf A = 0x67452301, B = 0xEFCDAB89, C = 0x98BADCFE, D = 0x10325476, indem 64 Runden in vier Gruppen zu je 16 ausgeführt werden, die die bitweisen Funktionen F(x,y,z) = (x AND y) OR ((NOT x) AND z), G(x,y,z) = (x AND z) OR (y AND (NOT z)), H(x,y,z) = x XOR y XOR z und I(x,y,z) = y XOR (x OR (NOT z)) anwenden, jeweils kombiniert mit der Rundenkonstante T[i] = floor(2^32 * abs(sin(i+1))) und einer Linksrotation. Der Endzustand, in Little-Endian konkateniert, ist der Digest. Der MD5 der leeren Eingabe ist d41d8cd98f00b204e9800998ecf8427e und dient als praktische Sanity-Check-Vergleichsgröße. Browser stellen MD5 nicht über crypto.subtle bereit (die W3C-Web-Crypto-Spezifikation lässt MD5 wegen Kollisionsangriffen bewusst weg), daher verwendet dieses Tool eine reine JavaScript-MD5-Implementierung, die vollständig im Browser läuft. Die Datei wird als ArrayBuffer in den Speicher geladen, der 16-Byte-Digest in einem Durchgang berechnet und als 32 kleingeschriebene hexadezimale Zeichen ausgegeben. Da die Arbeit auf dem Main-Thread läuft, blockiert das Hashen einer mehrere Gigabyte großen Datei diesen Thread, bis der Digest fertig ist; bei sehr großen Dateien ist ein Desktop-Tool besser, das Bytes von der Festplatte streamt. MD5 ist hinsichtlich Kollisionsresistenz kryptographisch gebrochen. Wang Xiaoyun und Yu Hongbo veröffentlichten 2004 (CRYPTO 2005) den ersten praktischen Kollisionsangriff und drückten die Kollisionskosten auf etwa 2^39 Operationen. 2008 nutzten Sotirov et al. Chosen-Prefix-Kollisionen, um ein bösartiges Zwischen-CA-Zertifikat zu fälschen, und 2012 verwendete die Staatstrojaner-Malware Flame eine bis dahin unbekannte Chosen-Prefix-MD5-Kollision, um ein Code-Signing-Zertifikat von Microsoft Terminal Server Licensing zu fälschen. NIST verbot MD5 in SP 800-131A im Jahr 2011 für digitale Signaturen; das CMU CERT veröffentlichte den Vulnerability Note VU#836068 und nannte MD5 'unsuitable for further use'. MD5 ist weiterhin akzeptabel, um zufällige Beschädigung zu erkennen (ein gekipptes Bit kippt ~64 der 128 Ausgangsbits durch den Lawineneffekt) und Duplikate auf vertrauenswürdigen Eingaben zu finden, darf aber dort nicht eingesetzt werden, wo ein Angreifer eine der Eingaben kontrolliert oder vorhersagen kann.
- MD5 erzeugt einen 128-Bit / 16-Byte Digest, kodiert als 32 Kleinbuchstaben-Hexadezimalzeichen; spezifiziert in RFC 1321 (Rivest, 1992).
- Anfangszustands-Konstanten A = 0x67452301, B = 0xEFCDAB89, C = 0x98BADCFE, D = 0x10325476; 64 Runden in vier Gruppen à 16 mit den bitweisen F/G/H/I-Funktionen und rundenspezifischen Konstanten T[i] = floor(2^32 * |sin(i+1)|).
- MD5 der leeren Eingabe ist d41d8cd98f00b204e9800998ecf8427e – ein schneller Sanity-Check, dass die Hashing-Pipeline einen gültigen Digest zurückgibt.
- Browser stellen MD5 nicht über crypto.subtle bereit (W3C Web Crypto lässt es absichtlich weg); dieses Tool verwendet eine reine JavaScript-MD5-Implementierung, die die Datei als ArrayBuffer lädt, den 16-Byte-Digest in einem Durchgang berechnet und als 32 kleingeschriebene Hex-Zeichen ausgibt.
- Speichernutzung: Der gesamte Dateiinhalt wird zunächst in einen einzigen ArrayBuffer eingelesen und dann gehasht; mehrere Gigabyte große Dateien benötigen entsprechend viel Tab-Speicher. Für Dateien, die der Tab nicht halten kann, nutze ein Desktop-Tool (md5sum, certutil -hashfile, Get-FileHash), das von der Festplatte streamt.
- Kollisionsangriffe: Wang und Yu (2004) ca. 2^39 Operationen; Sotirov et al. (2008) gewählte-Präfix-Kollision zum Fälschen eines Rogue-CA-Zertifikats verwendet; Flame-Malware (2012) nutzte eine gewählte-Präfix-Kollision zum Fälschen eines Microsoft-Code-Signing-Zertifikats.
- NIST SP 800-131A verbot MD5 für digitale Signaturen im Jahr 2011; MD5 ist nur für nicht-adversarielle Integritätsprüfungen und Duplikaterkennung akzeptabel – zu SHA-256 oder stärker wechseln, sobald die Prüfsumme Vertrauen betrifft.
Beispiele
MD5 einer leeren Datei (bekannte Konstante)
Datei: empty.txt (0 Bytes)
MD5: d41d8cd98f00b204e9800998ecf8427e
Dieser Wert ist der MD5 einer leeren Eingabe -> eine schnelle
Plausibilitätsprüfung, dass die Hashing-Pipeline durchgängig funktioniert.
(RFC-1321-Referenzvektor für die leere Zeichenkette.)Ein heruntergeladenes Installationsprogramm verifizieren
Datei: setup.bin (3 Bytes, Inhalt: abc)
Berechneter MD5: 900150983cd24fb0d6963f7d28e17f72
MD5 des Anbieters: 900150983cd24fb0d6963f7d28e17f72
Übereinstimmung -> Datei korrekt kopiert oder heruntergeladen.
Keine Übereinstimmung -> erneut herunterladen, Bytes wurden bei der Übertragung beschädigt.
(Der MD5-Wert ist der RFC-1321-Referenzvektor für die 3-Byte-
Eingabe 'abc'. In der Praxis durch das echte Installationsprogramm
ersetzen; die Algorithmusausgabe ist deterministisch.)Zwei Dokumentversionen vergleichen
report-v1.txt (0 Bytes) -> MD5: d41d8cd98f00b204e9800998ecf8427e
report-v2.txt (3 Bytes, Inhalt: abc)
-> MD5: 900150983cd24fb0d6963f7d28e17f72
Unterschiedliche Hashes = unterschiedlicher Inhalt. Schon eine Änderung
um ein Zeichen ergibt einen völlig anderen MD5, genau so funktionieren
Integritätsprüfungen.
(Beide Werte sind RFC-1321-MD5-Referenzvektoren.)Hello-World-Zeichenkette vs. Datei
MD5("hello") = 5d41402abc4b2a76b9719d911017c592
MD5("hello\n") = b1946ac92492d2347c6235b4d2611184
Ein abschließender Zeilenumbruch ändert den Digest. Eine Datei namens
hello.txt mit diesem Inhalt aber ohne abschließendes \n entspricht der
ersten Zeile, eine mit abschließendem \n gespeicherte Datei der zweiten
Zeile. Das ist eine häufige Falle beim Vergleich mit einem veröffentlichten
MD5, der auf einem anderen Betriebssystem erzeugt wurde.FAQ
Wird die Datei auf einen Server hochgeladen?
Nein. MD5 wird lokal in deinem Browser über die File API berechnet. Die Bytes werden in Blöcken in den Speicher gelesen und gehasht, ohne das Gerät zu verlassen. Du kannst das im Netzwerk-Tab während des Hashens bestätigen.
Ist MD5 noch sicher zu verwenden?
Nicht für Sicherheitszwecke. MD5 ist seit 2004 geknackt — Kollisionen lassen sich schnell erzeugen, daher darf es nicht für digitale Signaturen, Passwortspeicherung oder Manipulationsschutz verwendet werden. Als schnelle Prüfsumme zur Erkennung versehentlicher Beschädigungen (Download-Fehler, Plattenfehler) ist es weiterhin nützlich.
Warum sehe ich MD5 manchmal in Klein- und manchmal in Großbuchstaben?
MD5 erzeugt 128 Bit = 16 Byte = 32 Hex-Zeichen. Ob diese Hex-Zeichen in Groß- oder Kleinschreibung dargestellt werden, ist reine Anzeigesache; die zugrunde liegenden Bytes sind identisch und jede Prüfung sollte ohne Berücksichtigung der Groß-/Kleinschreibung erfolgen.
Wie groß darf eine Datei sein, die ich hier hashe?
Moderne Desktop-Browser bewältigen mehrere GB, bevor ihnen der Speicher ausgeht. Mobile Browser sind enger gefasst — einige hundert MB sind typisch. Für sehr große Dateien nutze einen Systembefehl (md5sum unter Linux, certutil -hashfile unter Windows, md5 unter macOS), der von der Platte streamt.
Warum unterscheidet sich mein MD5 von der Ausgabe eines anderen Tools?
Fast immer, weil sich die Eingabe um ein Byte unterscheidet: andere Zeilenenden (CRLF vs. LF), ein UTF-8-BOM, abschließende Leerzeichen oder eine andere Dateiversion. Der Hash selbst ist deterministisch, daher liefert identische Eingabe in allen konformen MD5-Implementierungen identische Ausgabe.
Was ist der Unterschied zwischen MD5 von Text und MD5 einer Datei?
MD5 hasht Bytes, keine Zeichen. „MD5 von Text“ kodiert den String zuerst (üblicherweise als UTF-8) und hasht dann diese Bytes; „MD5 einer Datei“ liest die Bytes der Datei direkt. Derselbe als UTF-8 oder UTF-16 gespeicherte String erzeugt unterschiedliche MD5-Werte.
Kann ich MD5 zur Erkennung doppelter Dateien verwenden?
Ja, mit dem Vorbehalt, dass MD5s bekannte Kollisionen bedeuten, dass ein Angreifer zwei verschiedene Dateien mit gleichem MD5 konstruieren könnte. Für versehentliche Duplikaterkennung (Fotos, Downloads) ist MD5 schnell und zuverlässig genug. Für vertrauenswürdige Deduplizierung nutze SHA-256.