Comparison
SHA-256 vs. MD5: MD5 niemals für Sicherheit nutzen
Das eine ist für Sicherheit tot. Das andere ist der moderne Standard. Nicht verwechseln.
By Buğra SözeriPublished
Kurz gesagt. MD5 ist seit 2004 kryptografisch gebrochen – Kollisionen lassen sich in unter einer Stunde auf einem Laptop finden – nutzen Sie es daher niemals für Sicherheit. SHA-256 hat keine bekannte praktische Kollision und ist der moderne Standard für TLS, JWT, Bitcoin, Git (neue Repos) und HMAC. Beide sind für nicht-adversariale Prüfsummen in Ordnung, aber SHA-256 ist auf modernen CPUs nicht nennenswert langsamer.
MD5 und SHA-256 sind beide kryptografische Hashfunktionen – sie nehmen eine Eingabe beliebiger Länge und erzeugen eine Ausgabe fester Länge (128 Bit für MD5, 256 Bit für SHA-256). Beide sind deterministisch, beide sind schnell und wirken oberflächlich austauschbar. Sind sie nicht. MD5 ist seit 2004 kryptografisch gebrochen. SHA-256 ist in Ordnung.
Das Wichtigste
| Eigenschaft | MD5 | SHA-256 |
|---|---|---|
| Ausgabegröße | 128 Bit (32 Hex-Zeichen) | 256 Bit (64 Hex-Zeichen) |
| Veröffentlicht | 1991 | 2001 (NIST FIPS 180-2) |
| Kollision gefunden | 2004 (Wang et al.) | Noch nicht (2026) |
| Chosen-Prefix-Kollisionen | Praktisch seit 2007 | Keine bekannt |
| Genutzt für TLS, JWT, Krypto? | Nein | Ja |
Warum MD5 gebrochen ist
Eine kryptografische Hashfunktion sollte es rechnerisch unmöglich machen, zwei verschiedene Eingaben zu finden, die dieselbe Ausgabe erzeugen (eine „Kollision“). 2004 veröffentlichten Xiaoyun Wang und ihr Team eine Methode, um MD5-Kollisionen in etwa einer Stunde auf einem Personal Computer zu finden.
Es wurde schlimmer. 2007 tauchte ein Chosen-Prefix-Kollisionsangriff auf – nimm zwei beliebige Dateiköpfe, und ein Angreifer konnte sorgfältig konstruierte Bytes anhängen, damit beide Dateien per MD5 kollidieren. Dies wurde 2008 genutzt, um eine betrügerische Zertifizierungsstellen-Signatur mit einem 657-$-Cluster aus PlayStation-3-Konsolen zu fälschen.
Für Sicherheitszwecke ist MD5 tot. Wer MD5 für Signaturprüfung, Inhaltsintegrität oder Passwort-Hashing nutzt, verwendet gebrochene Kryptografie.
Wo MD5 noch akzeptabel ist
MD5 ist nicht überhaupt gebrochen; es ist für kryptografische Zwecke gebrochen. Zwei Kategorien, in denen es noch in Ordnung ist:
- Nicht-adversariale Prüfsummen. Prüfen, dass ein Download nicht beschädigt wurde oder dass ein Cache-Eintrag zu einem Schlüssel passt. Es gibt keinen Angreifer; Sie brauchen nur einen schnellen, deterministischen Fingerabdruck. MD5 passt.
- Deduplizierung. Erkennen, dass zwei Dateien identisch sind, wo das Fälschen einer Kollision keinem plausiblen Angreifer helfen würde (Speichersystem, Build-Cache).
Selbst in diesen Fällen ist SHA-256 auf moderner Hardware selten nennenswert langsamer – sowohl Intel- als auch AMD-CPUs haben native SHA-Instruktionen. Es gibt keinen echten Grund mehr, standardmäßig MD5 zu verwenden.
Wo SHA-256 die richtige Wahl ist
- TLS-Handshakes und Zertifikatssignaturen. SHA-256 ist der moderne Standard.
- JWT-Signaturen (HS256, RS256, ES256). Die 256 bezieht sich auf SHA-256.
- Bitcoin-Block-Hashes. Bitcoin nutzt SHA-256 zweimal in seinem Proof-of-Work.
- Git-Objekt-Hashes. Git migriert von SHA-1 (das ebenfalls gebrochen wurde) zu SHA-256; neue Repositorys sollten von Anfang an SHA-256 verwenden.
- HMAC-basierte Nachrichtenauthentifizierung. HMAC-SHA256 ist der Standard.
Was ist mit SHA-1?
SHA-1 (160 Bit) liegt auf der Zeitachse zwischen MD5 und SHA-256. Theoretische Kollisionen wurden 2005 vorhergesagt; die erste praktische Kollision (SHAttered) wurde 2017 von Google veröffentlicht. SHA-1 ist für Sicherheitszwecke veraltet, auch wenn Git es (mit umfangreich darübergelegter Kollisionserkennung) noch nutzt, bis die SHA-256-Migration abgeschlossen ist.
Was ist mit MD5 für Passwörter?
Nicht. Nutzen Sie auch nicht SHA-256 direkt. Passwort-Hashing erfordert eine langsame, speicherintensive Funktion – bcrypt, scrypt oder argon2. Reines SHA-256 ist zu schnell: ein Angreifer mit modernen GPUs kann ~10 Milliarden SHA-256 pro Sekunde berechnen und schwache Passwörter in Minuten per Brute Force knacken. Langsame Hashfunktionen machen diesen Angriff wirtschaftlich undurchführbar.
Die pragmatische Regel
Wenn Sie aus irgendeinem Grund hashen, der Sicherheit berührt – Authentifizierung, Signaturprüfung, Inhaltsintegrität, die ein Angreifer täuschen wollen könnte – nutzen Sie SHA-256 oder stärker.
Wenn Sie für nicht-adversariales Fingerprinting hashen – Deduplizierung, inhaltsadressierter Speicher, bei dem Sie alle Eingaben kontrollieren – ist MD5 technisch in Ordnung, aber SHA-256 ist auf moderner Hardware nicht langsamer, verwenden Sie es daher ohnehin standardmäßig. Die Kosten, sich über die Kategorie zu irren, sind hoch; die Kosten, einfach immer SHA-256 zu verwenden, sind im Wesentlichen null.
Nutzen Sie für beides unseren Hash-Generator über Web Crypto – wobei wir bemerkenswerterweise MD5 nicht in der UI anbieten, weil der Browser es nicht nativ bereitstellt und wir seinen Einsatz lieber nicht fördern.
Zahlenfakten
- Ausgabelänge: MD5 = 128 Bit / 32 Hex-Zeichen; SHA-256 = 256 Bit / 64 Hex-Zeichen – genau doppelt so viele Bits.
- Kollisionsresistenz: MD5 heute ~2¹⁸ (buchstäblich Sekunden auf einem Laptop); SHA-256 ~2¹²⁸ – ein Verhältnis von 2¹¹⁰×.
- Durchsatz auf AMD Zen 4 mit SHA-NI: MD5 ~700 MB/s; SHA-256 ~1,9 GB/s. Mit Hardwarebeschleunigung ist SHA-256 jetzt ~2,5× schneller als MD5 – das Geschwindigkeitsargument für MD5 hat sich umgekehrt.
- Ohne Beschleunigung: MD5 ~500 MB/s, SHA-256 ~250 MB/s – die historische 2×-Lücke.
- Wang-Angriff (2004): erste praktische MD5-Kollision in ~1 Stunde auf einem einzelnen PC gefunden. Moderne Angriffe (HashClash) finden Kollisionen in unter 30 Sekunden auf handelsüblichen GPUs.
- Betrügerischer CA-Exploit 2008: Sotirov et al. fälschten ein CA-signiertes Zertifikat mit 200 PlayStation-3-Konsolen (~657 $ an Rechenleistung) und einer MD5-Chosen-Prefix-Kollision.
- GPU-Brute-Force-Rate (RTX 4090): ~50 Milliarden MD5/s, ~9 Milliarden SHA-256/s – beide zerlegen ungesalzene Passwort-Hashes in Minuten.
- Argon2id-Standardkosten (OWASP 2024): 19 MiB Speicher, 2 Iterationen, 1 Parallelität – ~50 ms pro Hash gegenüber Nanosekunden für rohes SHA-256.
Entscheidungsmatrix
| Anwendungsfall | Hash |
|---|---|
| TLS-Zertifikatssignierung | SHA-256+ |
| JWT-Signatur | SHA-256 (HS256/RS256/ES256) |
| Code- / Binärsignierung | SHA-256 |
| Bitcoin- / Blockchain-Proof-of-Work | SHA-256 (doppelt) |
| HMAC-Signierung von API-Anfragen | HMAC-SHA-256 |
| S3-ETag (Single-Part-Upload) | MD5 – per AWS-Vertrag festgelegt |
Linux-Paket-md5sums-Datei | MD5 – Altlast, aber neue Distros ergänzen SHA-256 |
| Interne Deduplizierung, vertrauenswürdige Eingaben | Beliebig; standardmäßig SHA-256 auf modernen CPUs |
| Passwort-Hashing | argon2id / bcrypt / scrypt – keines roh |
Quellen
- Wang, X. et al. – Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD, CRYPTO 2004 – eprint.iacr.org/2004/199.
- Sotirov, A. et al. – MD5 considered harmful today: Creating a rogue CA certificate, 25C3 (2008) – win.tue.nl/hashclash/rogue-ca.
- NIST FIPS 180-4 – Secure Hash Standard (SHS) – csrc.nist.gov.
Frequently asked questions
- Ist MD5 sicher für Passwort-Hashing?
- Nein, und selbst SHA-256 ist nicht die richtige Wahl für Passwörter. Beide sind zu schnell – ein Angreifer mit modernen GPUs kann ~10 Milliarden SHA-256 pro Sekunde berechnen und schwache Passwörter in Minuten per Brute Force knacken. Nutzen Sie bcrypt, scrypt oder argon2; sie sind bewusst langsam und speicherintensiv.
- Wann ist MD5 noch akzeptabel?
- Nur für nicht-adversariales Fingerprinting, bei dem kein Angreifer von einer Kollision profitiert: Integritätsprüfungen vertrauenswürdiger Downloads, Ableitung von Cache-Schlüsseln, Deduplizierung in einem System, das Sie durchgängig kontrollieren. Überall, wo die Sicherheit vom Hash abhängt, nutzen Sie SHA-256 oder stärker.
- Ist SHA-256 umkehrbar?
- Nein – kryptografische Hashfunktionen sind per Design einweg. Sie können die Eingabe nicht aus der Ausgabe ableiten. Nachschlagebasierte „Umkehrung“ (Rainbow Tables) funktioniert nur für Eingaben, die schon einmal gehasht wurden, und Salting setzt Rainbow Tables vollständig außer Kraft.
- Warum ist MD5 noch überall, wenn es gebrochen ist?
- Abwärtskompatibilität und Trägheit. Der Content-MD5-Header, Linux-Paketmanager, S3s ETag für Nicht-Multipart-Uploads und unzählige interne Werkzeuge geben weiterhin MD5 aus, weil die Kosten einer Protokolländerung die Kosten des Restrisikos übersteigen. Neue Systeme sollten standardmäßig SHA-256 verwenden.
Related
Published May 14, 2026