Guide
Kryptografisches Hashing erklärt: MD5, SHA-1, SHA-256, SHA-512
Drei Eigenschaften, vier Algorithmen, die noch der Rede wert sind, und ein Fehler — SHA-256 für Passwörter — der die Hälfte der Datenpannenberichte füllt.
By Buğra SözeriPublished
Eine kryptografische Hashfunktion ist eine Funktion, die eine beliebige Eingabe in einen Fingerabdruck fester Größe verwandelt. Das Wort “kryptografisch” leistet in diesem Satz echte Arbeit: nicht jede Hashfunktion erfüllt diese Anforderung, und eine nicht-kryptografische (oder die falsche kryptografische) zu verwenden, ist der Weg, auf dem Systeme klammheimlich unsicher werden.
Was eine kryptografische Hashfunktion ist
Formal nimmt eine Hashfunktion H eine beliebige Byte-Folge entgegen und liefert eine Ausgabe fester Länge, genannt Digest. SHA-256 liefert 256 Bit, SHA-512 liefert 512, MD5 liefert 128. Dieselbe Eingabe erzeugt immer dieselbe Ausgabe; dieselbe Ausgabe verrät nichts über die Eingabe.
Jeder kann einen Hash überprüfen; nur eine Kopie der ursprünglichen Eingabe kann einen erzeugen. Diese Asymmetrie macht Hashes nützlich für Integritätsprüfungen, Deduplizierung, Inhaltsadressierung, digitale Signaturen und (mit Vorbehalten, zu denen wir kommen) die Passwortspeicherung.
Die drei entscheidenden Eigenschaften
Eine Funktion gilt als kryptografisch sicher, wenn sie in der Praxis alle drei der folgenden Eigenschaften bietet:
1. Urbildresistenz
Bei gegebenem Digest d sollte es rechnerisch unmöglich sein, irgendeine Eingabe m zu finden, sodass H(m) = d. Das macht Hashes zu einer Einwegfunktion — man kann den Digest nicht zur Nachricht zurückrechnen. Bei einem 256-Bit-Hash betragen die Brute-Force-Kosten rund 2^256 Operationen, was astronomisch ist.
2. Zweiturbildresistenz
Bei einer bestimmten Eingabe m1 sollte es unmöglich sein, eine andere Eingabe m2 zu finden, sodass H(m1) = H(m2). Diese Eigenschaft schützt die Integrität: ein Angreifer, der Ihre Datei ersetzen, aber deren veröffentlichten Hash nicht ändern kann, muss ein zweites Urbild Ihrer exakten Eingabe fälschen, was viel schwerer ist als eine generische Kollision.
3. Kollisionsresistenz
Es sollte unmöglich sein, irgendwelche zwei verschiedenen Eingaben m1 != m2 mit H(m1) = H(m2) zu finden. Nach dem Geburtstagsparadoxon kostet das Finden einer generischen Kollision bei einem N-Bit-Hash etwa 2^(N/2) Operationen, nicht 2^N. Deshalb reicht die 160-Bit-Ausgabe von SHA-1 nicht mehr aus — 2^80 liegt 2026 gut in Reichweite eines entschlossenen Gegners.
Der Lawineneffekt
Eine nicht-formale, aber praktische Eigenschaft: eine Änderung von einem einzigen Bit an der Eingabe sollte einen völlig anderen Digest erzeugen, bei dem etwa die Hälfte der Ausgabebits gekippt ist. Das macht Hashes nützlich zum Vergleichen — man kann aus den Digests nicht ablesen, ob zwei Eingaben “fast gleich” waren, und genau das ist der Sinn der Sache.
Die veralteten — und warum
MD5 (1992)
128-Bit-Ausgabe. Kollisionen wurden erstmals 2004 von Xiaoyun Wang veröffentlicht; bis 2008 nutzten Forscher MD5-Kollisionen, um eine gefälschte Zertifizierungsstelle zu erstellen. Heute findet man eine MD5-Kollision auf einem Laptop in Minuten. MD5 ist für jeden Sicherheitszweck tot — Signaturen, Zertifikate, Deduplizierung, bei der feindliche Eingaben möglich sind, alles, was Kollisionsresistenz benötigt.
MD5 ist noch akzeptabel als nicht-kryptografische Prüfsumme gegen zufällige Beschädigung — ein CD-ROM-ISO-Download, ein interner Cache-Schlüssel — aber bezeichnen Sie es in einem Datenblatt niemals als “sicher”.
SHA-1 (1995)
160-Bit-Ausgabe. Der SHAttered-Angriff von Google und CWI aus dem Jahr 2017 erzeugte zwei verschiedene PDFs mit demselben SHA-1-Hash zu Kosten von rund 2^63 Operationen — teuer, aber machbar. NIST hat SHA-1 für digitale Signaturen 2011 formal abgekündigt und für den Bundeseinsatz ab 2030 untersagt. Alle großen Browser haben SHA-1-TLS-Zertifikaten bis 2017 das Vertrauen entzogen.
Git ist der prominente Nachzügler, wobei Abmilderungen (SHAttered-Erkennung) die zugrunde liegende Schwäche ausgleichen. Neue Protokolle sollten SHA-1 nicht verwenden.
Die SHA-2-Familie
SHA-2 ist eine Familie von Hashfunktionen, entworfen von der NSA und 2001 von NIST veröffentlicht: SHA-224, SHA-256, SHA-384, SHA-512, plus die verkürzten Varianten SHA-512/224 und SHA-512/256. Die Zahl ist die Ausgabelänge in Bit.
Trotz des gemeinsamen Namens ist SHA-2 strukturell nicht mit SHA-1 verwandt; die Angriffe, die SHA-1 brachen, sind nicht übertragbar. Nach fünfundzwanzig Jahren Kryptanalyse bleibt SHA-256 ungebrochen — die besten bekannten Angriffe betreffen nur rundenreduzierte Spielzeugversionen.
- SHA-256 ist 2026 der praktische Standard. 256-Bit-Digests, 128-Bit-Kollisionssicherheit, Hardwarebeschleunigung auf jeder modernen CPU.
- SHA-512 ist auf 64-Bit-Maschinen schneller und erzeugt einen längeren Digest. Verwenden Sie es, wenn Sie eine größere Reserve als 128 Bit Kollisionssicherheit wünschen.
- SHA-224 und SHA-384 sind SHA-256 bzw. SHA-512 mit verkürzter Ausgabe. Sie existieren für die Abwärtskompatibilität (Schlüssellängenabgleich mit elliptischen Kurven); neue Designs sollten standardmäßig die unverkürzten Formen verwenden.
Sie können jede davon in Sekunden mit unserem In-Browser-Hash-Generator überprüfen — er läuft lokal mit der Web-Crypto-API, sodass nichts das Gerät verlässt.
SHA-3 und wann es zählt
NIST führte von 2007 bis 2012 einen offenen Wettbewerb durch, um einen strukturellen Reserveplan für SHA-2 auszuwählen. Der Gewinner war Keccak, 2015 als SHA-3 standardisiert. SHA-3 verwendet eine grundlegend andere Konstruktion (die Schwammfunktion), sodass ein hypothetischer Bruch der Merkle-Damgård-Struktur von SHA-2 SHA-3 nicht brechen würde.
SHA-3 ist in Software in der Regel langsamer als SHA-2, in Hardware aber vergleichbar oder schneller. Es ist die richtige Wahl, wenn Sie gezielt algorithmische Vielfalt wünschen (z. B. dieselben Daten zur Verteidigung in der Tiefe sowohl mit SHA-2 als auch mit SHA-3 signieren) oder wenn Sie auf einer Plattform mit dedizierter SHA-3-Hardware arbeiten. Für alles andere bleibt SHA-256 der praktische Standard.
Warum Sie Passwörter nicht mit SHA-256 hashen
Das ist der häufigste Fehler in diesem gesamten Themenbereich. SHA-256 ist schnell — eine moderne GPU kann Milliarden pro Sekunde berechnen. Für einen Angreifer, der Ihre Passwortdatenbank gestohlen hat, ist diese Geschwindigkeit genau die falsche Eigenschaft: jeder Versuch, den er prüfen will, kostet Nanosekunden.
Passwort-Hashfunktionen sind so konzipiert, dass sie absichtlich langsam und speicherintensiv sind, damit das Skalieren eines Angriffs mit Spezialhardware (ASICs, FPGAs) teuer statt kostenlos wird. Die drei Namen, die man 2026 kennen sollte:
- bcrypt (1999). Einstellbarer Arbeitsfaktor (Kostenparameter). Noch sicher; die Grenze ist die 72-Byte-Eingabeobergrenze. Standardwahl bei der Integration mit bestehenden Bibliotheken.
- scrypt (2009). Speicherintensiv, schwerer mit ASICs zu beschleunigen als bcrypt. Verwendet von Litecoin und einer Handvoll Passwortdatenbanken.
- Argon2(PHC-Gewinner 2015). Die aktuelle Empfehlung. Argon2id ist die zu verwendende Variante — sie ist resistent gegen Seitenkanal- und GPU-Angriffe. Spezifiziert in
RFC 9106.
Alle drei akzeptieren ein Salt (einen benutzerspezifischen Zufallswert, der dem Passwort vor dem Hashen angehängt wird). Das Salt eliminiert Rainbow-Table-Angriffe und stellt sicher, dass zwei Benutzer mit demselben Passwort unterschiedliche gespeicherte Hashes erhalten. Moderne Bibliotheken übernehmen die Salt-Erzeugung für Sie; überspringen Sie sie nicht.
HMAC: Hashing mit einem Schlüssel
Ein Hash beantwortet “sind diese Daten unverändert?”. Ein HMAC beantwortet “sind diese Daten unverändert undhat jemand, der das gemeinsame Geheimnis kennt, diesen MAC erzeugt?”.
HMAC baut auf jeder kryptografischen Hashfunktion auf — HMAC-SHA-256 ist die gängige — über eine spezifische, in RFC 2104 definierte Konstruktion. Die naive Alternative, H(key || message), ist anfällig für Längenerweiterungsangriffe auf Merkle-Damgård-Hashes (wozu SHA-256 gehört). Die verschachtelte Konstruktion von HMAC verhindert dies. Verwenden Sie immer HMAC, nicht die naive Form.
HMAC ist das Arbeitspferd der API-Signierung (AWS SigV4, Webhook-Signaturen, JWTs HS256), der TLS-Record-Layer-Authentifizierung und jedes Protokolls, das die Zusicherung “dies stammt von jemandem mit dem Schlüssel” benötigt. Dasselbe Primitiv taucht im weiteren Auth-Ökosystem auf — Sitzungscookies, OAuth-Bearer-Token und CSRF-Double-Submit-Token stützen sich alle auf HMAC oder einen Hash, um einen Wert an ein Geheimnis zu binden, das der Server hält.
Reale Anwendungsfälle
Integritätsprüfung
Veröffentlichen Sie den SHA-256 eines Downloads neben der Datei. Jeder kann seine Kopie hashen und vergleichen. So verteilt jede Linux-Distribution ihre ISOs und so verifizieren Paketmanager Abhängigkeiten. Der Hash selbst muss über einen vertrauenswürdigen Kanal geliefert werden (HTTPS zur Projektseite, signiert mit dem Signierschlüssel des Projekts) — ein Angreifer, der die Datei verändern kann, kann meist auch den Hash verändern, wenn er auf demselben Kanal sitzt.
Inhaltsadressierung
Git, IPFS, Docker-Layer und viele andere Systeme adressieren Objekte über ihren Hash. Der Hash ist der Name. Das liefert kostenlose Deduplizierung (identischer Inhalt hat identische Hashes) und kostenlose Integrität (wenn der Hash übereinstimmt, stimmen die Bytes überein).
Digitale Signaturen
Eine mehrere Megabyte große Datei direkt mit einem RSA- oder ECDSA-Schlüssel zu signieren, wäre langsam. Das Standardmuster ist, die Datei zu hashen und den Hash zu signieren. Die Sicherheit der Signatur erbt die Kollisionsresistenz des Hashes — weshalb SHA-1-Signaturen von Browsern nicht mehr vertraut wird.
Blockchain-Proof-of-Work
Bitcoins Proof-of-Work fordert Miner auf, eine Eingabe zu finden, deren SHA-256 (genau genommen zweimal) mit einer bestimmten Anzahl Nullbits beginnt. Es gibt keine Abkürzung, sodass die einzige Möglichkeit, eine solche Eingabe zu finden, darin besteht, viele Kandidaten auszuprobieren — was die “Arbeit” im Proof-of-Work ist. Ethereum stieg 2022 von Proof-of-Work auf Proof-of-Stake um, doch das zugrunde liegende hashbasierte Primitiv ist in Kryptowährungen noch allgegenwärtig.
Deduplizierung
Dropbox, Backblaze und jeder moderne Objektspeicher deduplizieren auf Blockebene, indem sie jeden Block hashen und pro eindeutigem Hash eine Kopie behalten. SHA-256 ist für nicht-feindliche Deduplizierung überdimensioniert; viele Systeme verwenden einen schnelleren nicht-kryptografischen Hash (BLAKE3, xxHash) und nehmen die astronomisch geringe Kollisionswahrscheinlichkeit in Kauf.
Kurzreferenz
| Algorithmus | Ausgabebits | Status 2026 | Verwendung für |
|---|---|---|---|
| MD5 | 128 | Gebrochen | Nur nicht-feindliche Prüfsummen |
| SHA-1 | 160 | Veraltet | Nur Abwärtskompatibilität |
| SHA-256 | 256 | Sicher | Allgemeiner Standard |
| SHA-512 | 512 | Sicher | Wenn Sie zusätzliche Reserve oder 64-Bit-Tempo wollen |
| SHA-3-256 | 256 | Sicher | Strukturelle Vielfalt, Hardwarebeschleunigung |
| bcrypt / Argon2 | variiert | Sicher | Passwortspeicherung |
| HMAC-SHA-256 | 256 | Sicher | Authentifizierte Nachrichtenintegrität |
Das ehrliche Fazit
Für allgemeines Hashing verwenden Sie 2026 SHA-256. Für Passwörter verwenden Sie Argon2id. Für Authentifizierungstoken verwenden Sie HMAC-SHA-256 (oder eine ordentliche JWT-Bibliothek, die eine solche unter der Haube verwendet). Für die Integrität von Downloads veröffentlichen Sie SHA-256-Digests über HTTPS.
Die falschen Antworten — MD5 überall dort, wo Sicherheit zählt, SHA-1 für neue Signaturen, SHA-256 für Passwörter — sind die häufigsten Fehler in den Datenpannenberichten. Richtig zu wählen heißt vor allem zu wissen, welche Frage jeder Algorithmus beantworten soll.
Frequently asked questions
- Ist SHA-256 schon gebrochen?
- Nein. Stand 2026 gibt es keinen veröffentlichten Kollisions- oder Urbildangriff auf SHA-256, der besser wäre als Brute Force. Die besten bekannten kryptanalytischen Ergebnisse betreffen nur rundenreduzierte Varianten. NIST empfiehlt SHA-256 weiterhin für allgemeines Hashing und digitale Signaturen.
- Warum nicht einfach SHA-256 zum Hashen von Passwörtern verwenden?
- Weil SHA-256 darauf ausgelegt ist, schnell zu sein — Milliarden Hashes pro Sekunde auf einer modernen GPU. Genau das ist die falsche Eigenschaft für die Passwortspeicherung, wo Angreifer pro Versuch Sekunden statt Nanosekunden aufwenden sollen. Verwenden Sie bcrypt, scrypt oder Argon2 — diese sind absichtlich langsam, speicherintensiv und haben einen einstellbaren Arbeitsfaktor, den Sie erhöhen können, wenn die Hardware schneller wird.
- Ist SHA-3 schneller als SHA-2?
- In der Regel langsamer auf CPUs, schneller in Hardware. SHA-3 (Keccak) wurde als struktureller Reserveplan für SHA-2 ausgewählt, nicht als Ersatz — seine Schwammkonstruktion ist mathematisch eigenständig, sodass ein hypothetischer Bruch von SHA-2 nicht übertragbar wäre. Für Software bleibt 2026 SHA-256 der praktische Standard; greifen Sie zu SHA-3, wenn Sie gezielt die strukturelle Vielfalt benötigen oder Hardware mit einem SHA-3-Beschleuniger anvisieren.
- Was ist der Unterschied zwischen einem Hash und einem HMAC?
- Ein einfacher Hash nimmt Daten entgegen und liefert einen Digest zurück. Ein HMAC nimmt Daten plus einen geheimen Schlüssel und liefert einen Digest, der nur von jemandem reproduziert werden kann, der den Schlüssel kennt. Einfache Hashes verwenden Sie für Integrität (stimmt diese Datei mit der veröffentlichten Prüfsumme überein?), HMACs für Authentizität (kannte der Absender das gemeinsame Geheimnis?). Einen Schlüssel naiv den Daten voranzustellen und zu hashen ist nicht dasselbe wie HMAC und hat bekannte Schwächen — verwenden Sie immer die echte HMAC-Konstruktion.
- Wie lange dauert es tatsächlich, eine SHA-256-Kollision zu finden?
- Nach dem Geburtstagsparadoxon erfordert das Finden einer Kollision bei einer 256-Bit-Ausgabe rund 2^128 Hash-Operationen. Bei einer Billion (10^12) Hashes pro Sekunde über eine Million Maschinen sind das immer noch etwa 10^19 Jahre — bequem länger als das Alter des Universums. SHA-1 hingegen hat eine 160-Bit-Ausgabe (Geburtstagsschranke 2^80), und Googles SHAttered-Angriff von 2017 demonstrierte eine Kollision in etwa 2^63 Operationen — in Reichweite eines entschlossenen Gegners.
- Warum verwendet Git immer noch SHA-1?
- Größtenteils Trägheit plus Abmilderungen. Gits inhaltsadressierter Speicher hängt nicht von der Kollisionsresistenz gegenüber einem Angreifer ab, der beide Eingaben kontrolliert — er hängt von der Zweiturbildresistenz ab, die für SHA-1 noch stark ist. Modernes Git implementiert zudem eine SHAttered-Erkennung, um die spezifisch bekannten Schadeingaben abzuweisen. Der Übergang zu SHA-256 läuft, aber langsam; neue Repos können sich mit git init --object-format=sha256 dafür entscheiden.
Sources & references
Authoritative references cited by this piece. Verified by Buğra Sözeri on the dates shown and re-checked at every deploy.
- NIST FIPS 180-4 — Secure Hash Standard (SHS) — Kanonische Spezifikation für SHA-1, SHA-224, SHA-256, SHA-384, SHA-512(as of )
- NIST FIPS 202 — SHA-3 Standard — Spezifikation der Keccak-basierten SHA-3-Familie(as of )
- RFC 2104 — HMAC: Keyed-Hashing for Message Authentication — Die im Artikel durchgängig referenzierte HMAC-Konstruktion(as of )
- Stevens et al. — The first collision for full SHA-1 (SHAttered) — Referenzpapier zum SHA-1-Kollisionsangriff von 2017(as of )
- RFC 9106 — Argon2 Memory-Hard Function for Password Hashing — Aktuelle, im FAQ referenzierte Empfehlung für die Passwortspeicherung(as of )
Related
- Hash-Generator (MD5, SHA-1, SHA-256, SHA-512)Hashes im Browser berechnen; nichts verlässt Ihr Gerät
- SHA-256 vs. MD5Warum das eine akzeptabel und das andere ein Risiko ist
- SHA-1 vs. SHA-256Direktvergleich bei Kollisionsresistenz und Einsatzzwecken
- SHA-256 im GlossarKurzreferenz zum Algorithmus und seiner Ausgabe
- So wählen Sie ein starkes PasswortDas Begleitstück zur Frage des Passwort-Hashings
Published May 31, 2026