MD5-Hash-Generator
Online MD5-Verschlüsselung, unterstützt 16-Bit- und 32-Bit-Ausgabe, Groß- und Kleinschreibung
Formateinstellungen
Was ist MD5-Verschlüsselung?
MD5 (Message Digest Algorithm 5) ist eine weit verbreitete kryptografische Hash-Funktion, die 1991 vom amerikanischen Kryptografen Ronald Rivest entwickelt wurde. MD5 kann Daten beliebiger Länge auf einen festen 128-Bit- (16-Byte) Hash-Wert abbilden, der typischerweise als 32 hexadezimale Ziffern dargestellt wird. MD5 wurde weitläufig zur Datenintegritätsprüfung, Passwortspeicherung und digitalen Signaturen verwendet. Im Jahr 2004 entdeckte jedoch die chinesische Kryptografin Wang Xiaoyun und ihr Team Kollisions-Schwachstellen in MD5, die es Angreifern ermöglichen, zwei verschiedene Datensätze mit demselben MD5-Wert zu erstellen. Daher ist MD5 nicht mehr für sicherheitsrelevante Szenarien geeignet. MD5-Ausgabeformate gibt es in zwei Arten: das Standard-32-Bit- (vollständiger Hash-Wert) und das gekürzte 16-Bit-Format (mittlere 16 Zeichen des 32-Bit-Wertes). Dieses Tool unterstützt beide Ausgabeformate mit Groß- oder Kleinschreibungs-Optionen.
Anleitung
So wird es verwendet
- Gib den zu verschlüsselnden Text in das Eingabefeld ein
- Wähle das Ausgabeformat: Großbuchstaben 32-stellig, Kleinbuchstaben 32-stellig, Großbuchstaben 16-stellig oder Kleinbuchstaben 16-stellig
- Der MD5-Wert wird automatisch berechnet und angezeigt
- Klicke auf die Schaltfläche „Kopieren“, um das Ergebnis zu kopieren
Beschreibung des Ausgabeformats
- Verwende die 32-stellige Ausgabe, wenn du den vollständigen MD5-Hash für Prüfsummen, Cache-Schlüssel oder ältere API-Felder benötigst.
- Verwende die 16-stellige Ausgabe nur dann, wenn ein älteres System explizit die mittleren 16 Zeichen des vollständigen Hashs erwartet.
Beschreibung der Groß-/Kleinschreibung
- Groß- und Kleinbuchstaben-MD5-Werte enthalten dieselben hexadezimalen Bytes; der Unterschied liegt nur im Anzeigeformat.
- Vergleiche MD5-Werte immer in der exakten Groß-/Kleinschreibung, die das Zielsystem erwartet, um falsche Abweichungen zu vermeiden.
Anwendungsfälle
Technisches Prinzip
MD5 (Message-Digest Algorithm 5) wurde 1991 von Ronald Rivest am MIT entworfen und als RFC 1321 veröffentlicht, als Nachfolger des gebrochenen MD4. Es war der Arbeitspferd-Hash der 1990er und 2000er Jahre: Dateiintegritätsprüfungen, Passwortspeicherung (schlecht, ohne Salt), digitale Signaturen, Malware-Fingerprinting und der Standard-Digest in Werkzeugen wie `md5sum`, MySQLs `MD5()`, Git's älterem Objektspeicher und `openssl dgst -md5`. Die Ausgabe beträgt 128 Bit (16 Bytes), fast immer dargestellt als 32 hexadezimale Kleinbuchstaben. Das Design folgt Merkle–Damgård: Die Nachricht wird auf ein Vielfaches von 512 Bit gepolstert, eine 64-Bit-Little-Endian-Länge angehängt, dann wird eine Kompressionsfunktion über jeden 512-Block iteriert. Der 128-Bit-Zustand wird in den vier 32-Bit-Registern A, B, C, D exponiert, initialisiert mit festen Konstanten (0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476 – gewählt als 'nothing-up-my-sleeve'-Werte: Es sind die Quadratwurzeln von 2, 3, 5, 10 in Little-Endian). Jeder 512-Block wird in sechzehn 32-Bit-Wörter M[0..15] zerlegt und durch 4 Runden à 16 Schritte (64 Schritte insgesamt) geführt. Die Rundenfunktionen sind F = (X AND Y) OR (NOT X AND Z), G = (X AND Z) OR (Y AND NOT Z), H = X XOR Y XOR Z, I = Y XOR (X OR NOT Z); jeder Schritt kombiniert eine Rundenfunktion, ein Nachrichtenwort, eine Rundenkonstante T[i] = floor(2^32 · |sin(i+1)|) und eine Linksrotation um einen schrittspezifischen Betrag, addiert das Ergebnis dann zurück zum Zustand. Das Design der 4 Runden: Runde 1 ist schnell und nichtlinear, Runde 2 parallelisierbar, Runde 3 mischt aggressiver, Runde 4 schließt mit starker Diffusion ab. Der Endzustand ist der MD5 der gesamten Nachricht; das macht MD5 zu einer Einwegfunktion im prä-quantenmechanischen Sinne. Der Kollaps: Die Kollisionsresistenz ist gebrochen, und das ist das Einzige, was für kryptografische Zwecke zählt. Wang et al. veröffentlichten 2004 einen vollständigen Kollisionsangriff (CFRG-Angriffe reduzierten die Kollisionssuche auf wenige Stunden auf einem PC). 2008 nutzten Forscher MD5-Kollisionen, um ein gültiges CA-Zertifikat zu fälschen (der 'Chosen-Prefix-Collision'-Angriff von Stevens et al.), und 2012 missbrauchte die Flame-Malware eine bis dahin unveröffentlichte MD5-Kollision, um ein Microsoft-Code-Signing-Zertifikat zu fälschen. Die Arbeit von 2004 reduzierte den Kollisionssuchraum von 2^64 auf etwa 2^24, sodass jeder Angreifer mit wenigen Stunden Rechenzeit zwei Nachrichten mit demselben MD5 erzeugen kann. Nach Flame verbot Microsoft MD5 explizit in Authenticode; Browser widerriefen MD5-signierte TLS-Zertifikate 2014–2017; und die IETF hat MD5 längst in TLS, SSH und IPsec als veraltet eingestuft. Leistungszahlen von einem modernen x86-64-Laptop: MD5 hasht mit 400–700 MB/s pro Kern (speicherbandbreitenbegrenzt bei großen Eingaben), SHA-256 mit 200–300 MB/s, SHA-512 schneller auf 64-Bit-CPUs wegen 64-Bit-Wortoperationen. Für Passwort-Hashing ist MD5 ungeeignet, unabhängig vom Durchsatz – bcrypt/scrypt/Argon2id sind bewusst einstellbar, um GPU-Beschleunigung zu vereiteln. Auf einer einzelnen RTX 4090 benchmarkt Hashcat MD5 mit rund 60 GH/s (Gigahashes pro Sekunde) – 7–8× schneller als SHA-256 auf derselben GPU. Diese Lücke ist der gesamte Grund, warum MD5 gefährlich ist: Die GPU brütet in Stunden, nicht Jahren, durch vorberechnete Tabellen. Web Crypto's `crypto.subtle.digest('MD5', bytes)` läuft in Chrome, Edge und Firefox 102+ nahezu mit Festplattengeschwindigkeit; ältere Browser greifen auf eine reine-JS-Implementierung (SparkMD5 oder die eigene der Seite) mit 50–150 MB/s zurück. Testvektoren aus RFC 1321: Leerstring hasht zu d41d8cd98f00b204e9800998ecf8427e, 'a' zu 0cc175b9c0f1b6a831c399e269772661, 'abc' zu 900150983cd24fb0d6963f7d28e17f72. Wenn die Ausgabe nicht übereinstimmt, liegt der Fehler fast immer an einem Kodierungsproblem (eine JS-Zeichenkette wird statt UTF-8-Bytes an eine JS-MD5-Implementierung übergeben) und nicht am Algorithmus selbst.
- Merkle–Damgård macht MD5 anfällig für Längenerweiterung: Gegeben H(secret || msg) kann ein Angreifer H(secret || msg || padding || extra) berechnen, ohne secret zu kennen. Daher ist MD5(secret || message) kein sicheres MAC – verwende HMAC-MD5 (RFC 2104) oder HMAC-SHA256, die eine andere Struktur verwenden (einen zweifach geschachtelten Hash), die diesem Angriff widersteht.
- Testvektoren (RFC 1321): Der Leerstring hasht zu d41d8cd98f00b204e9800998ecf8427e, 'a' zu 0cc175b9c0f1b6a831c399e269772661, 'abc' zu 900150983cd24fb0d6963f7d28e17f72. Wenn die eigene Implementierung diese nicht liefert, liegt der Fehler fast immer an einem Kodierungsproblem (eine JavaScript-Zeichenkette wird statt UTF-8-Bytes via TextEncoder an eine JS-MD5-Implementierung übergeben) und nicht am Algorithmus selbst.
- Hash-Rate: Ein einzelner Kern einer modernen x86-64-CPU schafft etwa 400–700 MB/s MD5, begrenzt durch die Speicherbandbreite bei großen Eingaben. SHA-256 ist mit 200–300 MB/s etwa 30 % langsamer, SHA-512 auf 64-Bit-CPUs schneller wegen 64-Bit-Wortoperationen. Für Passwort-Hashing ist die richtige Wahl bcrypt (Kostenfaktor 12) / scrypt / Argon2id, die bewusst langsam und einstellbar sind, um GPU-Beschleunigung zu vereiteln.
- Die '4 Rundenfunktionen' F, G, H, I wurden absichtlich so benannt, dass sie als Satz gelesen werden können ('FiGiHI' / 'figi hi'), eine Rivest-Signatur. Jede ist rein bitweise und nutzt eine andere Mischstruktur, damit der Algorithmus unter Kryptoanalyse nicht zu einem linearen oder affinen System kollabiert. Das S-Konzept von DES / AES existiert in MD5 nicht; die Sicherheit kommt von der Nachrichtenwort-Expansion und den Rotationskonstanten, nicht von Substitutionstabellen.
- Hashcat-Benchmark auf einer einzelnen RTX 4090: Rund 60 GH/s für MD5 (reiner Hash) und 30 GH/s für MD5 mit Salt. SHA-256 auf derselben GPU liegt bei 8 GH/s. Die 7–8× Lücke ist der Grund, warum Angreifer MD5 lieben: Die GPU kann in Stunden, nicht Jahren, durch vorberechnete Tabellen brüten. Für alles, was Offline-Angriffen widerstehen soll, SHA-256, bcrypt oder Argon2id verwenden.
- Das 'doppelte MD5' (MD5(MD5(x))) findet sich manchmal in altem PHP- und MySQL-Code, oft mit Salt. Es hilft nicht gegen Kollisionsangriffe (eine MD5-Kollision ist auch eine Kollision von MD5(MD5()) mit O(1) Zusatzaufwand) und verlangsamt die Urbildsuche nur leicht (Faktor 2). Modernes Passwort-Hashing (Argon2id aus RFC 9106, scrypt aus RFC 7914, bcrypt mit Kosten ≥ 12) ist die einzige richtige Antwort für die Passwortspeicherung; wenn MD5 in einer modernen Passwortspalte auftaucht, ist das ein Fehler.
- Migration von MD5 weg: Wer ein System betreibt, das derzeit MD5 nutzt, sollte dual schreiben (beim Lesen sowohl MD5 als auch SHA-256 berechnen, in neuen Codepfaden SHA-256 bevorzugen) für eine Übergangsphase, dann MD5 fallen lassen, sobald nichts mehr davon abhängt. Für Legacy-Protokolle, die MD5 zwingend vorschreiben (NTLM, RADIUS-Challenge-Response, einige Kerberos-Modi), wird MD5 nicht so schnell verschwinden – Microsoft hat NTLM 2010 auf AES umgestellt, aber die alte Version ist aus Kompatibilitätsgründen noch standardmäßig aktiv, und NTLMv1 sollte bei Legacy-Windows-Systemen vollständig deaktiviert werden.
- Die Implementierung der Seite: Wenn Web Crypto verfügbar ist (Chrome, Edge, Firefox 102+), wird `crypto.subtle.digest('MD5', utf8Bytes)` verwendet, das in nativem Code nahezu mit Festplattengeschwindigkeit läuft. Andernfalls wird eine reine-JS-Implementierung (SparkMD5 0.7 oder die eigene der Seite) verwendet, die mit 50–150 MB/s läuft. Beide erzeugen identische Ausgabe, sodass Testvektoren für beide Backends bestehen. Der Kodierungsschritt ist `new TextEncoder().encode(str)`, der stets UTF-8-Bytes liefert; eine JavaScript-Zeichenkette darf nicht direkt an eine reine-JS-MD5-Implementierung übergeben werden, da sonst bei jeder nicht-ASCII-Eingabe ein falscher Hash entsteht.
Beispiele
Leere Zeichenkette und kurzer Text
Leere Zeichenkette -> d41d8cd98f00b204e9800998ecf8427e
hello -> 5d41402abc4b2a76b9719d911017c592
RFC: RFC 1321 Abschnitt A.1 definiert diese TestvektorenGroß-/Kleinschreibung
hello world -> 5eb63bbbe01eeed093cb22bb8f5acdc3
Hello -> 8b1a9953c4611296a827abf8c47804d7
HELLO -> eb61eead90e3b899c6bcbe27ac581660
Hinweis: das Ändern eines einzigen Zeichens verändert den Hash vollständig (Lawineneffekt)Zahlen und Satzzeichen
123456 -> e10adc3949ba59abbe56e057f20f883e
Hello, World! -> 65a8e27d8879283831b664bd8b7f0ad4
file.txt -> 3d8e577bddb17db339eae0b3d9bcf180
Hinweis: jede Änderung an Satzzeichen oder Leerzeichen erzeugt einen völlig anderen DigestWarum MD5 für Sicherheit nicht empfohlen wird
Kollisionsangriff: 2004 fanden Forscher Wege, zwei verschiedene
Nachrichten mit demselben MD5-Hash zu erzeugen. Das bricht digitale
Signaturen und die Zertifikatsvalidierung.
Für Sicherheit SHA-256 oder SHA-3 verwenden:
MD5: 128 Bit, gebrochene Kollisionsresistenz (praktikabler Angriff)
SHA-256: 256 Bit, keine praktischen Kollisionen gefunden
SHA-512: 512 Bit, noch stärkerer Sicherheitspuffer
NIST: NIST hat MD5 für kryptografische Nutzung seit 2005 abgekündigt
Nutzung: MD5 ist weiterhin sicher für Dateiintegritätsprüfungen, Deduplizierung und Cache-SchlüsselFAQ
Was ist MD5?
MD5 (Message Digest 5, RFC 1321) ist eine 128-Bit-Hashfunktion, die 1991 von Ron Rivest veröffentlicht wurde. Sie liefert unabhängig von der Eingabelänge immer 32 Hex-Zeichen, und die Ausgabe ändert sich vollständig, wenn auch nur ein Eingabebit kippt. Sie ist schnell - hunderte MB/s auf einer modernen CPU.
Ist MD5 sicher?
Nicht für Sicherheit. Kollisionsangriffe gegen MD5 sind seit 2004 praktikabel, Chosen-Prefix-Kollisionen seit 2007. Verwende MD5 nicht für digitale Signaturen, Zertifikat-Hashes, Passwortspeicherung oder Manipulationserkennung, bei der ein Angreifer eine der Eingaben wählen kann.
Wofür kann ich MD5 noch verwenden?
Zum Erkennen zufälliger Beschädigungen: Download-Prüfsummen, einfache Deduplikation vertrauenswürdiger Dateien und schnelle ETag-artige Fingerabdrücke. Viele Anbieter veröffentlichen MD5 weiterhin aus Gründen der Abwärtskompatibilität, oft zusammen mit SHA-256.
Erfolgt die Berechnung lokal?
Ja. Der MD5 von eingefügtem Text wird in deinem Browser berechnet. Nichts wird hochgeladen oder protokolliert. Du kannst es im Netzwerk-Tab überprüfen, während du den Hash bildest.
Warum erzeugt derselbe String anderswo einen anderen MD5?
Fast immer wegen eines unsichtbaren Zeichenunterschieds: ein UTF-8-BOM, ein abschließender Zeilenumbruch, CRLF statt LF oder ein Tool, das als UTF-8 codiert, während ein anderes UTF-16 verwendet. Der MD5-Algorithmus selbst ist über alle Implementierungen hinweg vollständig deterministisch.
Sind Groß- und Kleinbuchstaben-MD5 gleich?
Ja. Die 128 Bit Ausgabe sind identisch; die Schreibweise ist reine Anzeigekonvention. Prüfer sollten ohne Beachtung der Groß-/Kleinschreibung vergleichen.
Wie unterscheidet sich MD5 von MD5(salt + password)?
Reines MD5 eines Passworts ist mit Rainbow-Tabellen trivial knackbar. Ein Salt blockiert vorberechnete Tabellen, aber MD5 ist immer noch viel zu schnell für Passwort-Hashing. Verwende für Passwörter bcrypt/scrypt/Argon2; MD5 (mit oder ohne Salt) ist dafür das falsche Werkzeug.