Hash-Algorithmen und Hashing verständlich erklärt
Ein Hash (oder Prüfsumme) ist das Ergebnis einer mathematischen Funktion, die eine Eingabe beliebiger Länge (z. B. ein einzelnes Zeichen, ein Passwort oder eine komplette Festplattendatei) in eine Zeichenkette fester Länge umwandelt.
Dieses Verfahren wird als Hashing bezeichnet. Hashing ist ein Grundpfeiler der modernen Informationstechnologie und IT-Sicherheit. Es wird zur Verifizierung von Datei-Integritäten, zum schnellen Auffinden von Daten in Tabellen (Hash-Maps) und zur sicheren Speicherung von Benutzerpasswörtern eingesetzt.
Hashing begegnet Ihnen quer durch die Web-Infrastruktur: Es sichert die Signatur eines JSON Web Tokens ab, bildet die Grundlage des ETag-Validierungsmechanismus und schützt über den Fingerabdruck eines CSR die Integrität von TLS-Zertifikaten.
Die Kern-Eigenschaften einer kryptografischen Hashfunktion
Damit eine Hashfunktion für Sicherheitszwecke geeignet ist, muss sie vier grundlegende mathematische Kriterien erfüllen:
- Einwegfunktion (Pre-image resistance): Es muss rechnerisch unmöglich sein, aus dem generierten Hash-Wert die ursprüngliche Eingabe zu rekonstruieren.
- Deterministisch: Die Funktion muss für dieselbe Eingabe immer exakt denselben Hash-Wert erzeugen. Gibt man denselben Text morgen wieder ein, muss das Ergebnis identisch sein.
- Lawineneffekt (Avalanche effect): Jede minimale Änderung an der Eingabe (z. B. das Ändern eines einzelnen Zeichens von Gross- in Kleinschreibung) muss zu einem völlig anderen, unkorrelierten Hash-Wert führen.
- Kollisionssicher (Collision resistance): Es muss extrem schwierig bis unmöglich sein, zwei unterschiedliche Eingaben zu finden, die denselben Hash-Wert liefern.
Die verschiedenen Arten von Hash-Algorithmen
Je nach Einsatzzweck werden unterschiedliche Algorithmen verwendet. Generell unterscheidet man zwischen schnellen Hashfunktionen (für Integritätsprüfungen) und langsamen Hashfunktionen (für Passwörter).
1. Schnelle Hash-Algorithmen (Integrität & Signaturen)
Diese Algorithmen sind darauf optimiert, gigantische Datenmengen in Sekundenbruchteilen zu berechnen.
- MD5 (Message-Digest Algorithm 5): Erzeugt einen 128-Bit-Hash. Gilt aufgrund von nachgewiesenen Kollisionsangriffen heute als absolut unsicher für kryptografische Zwecke.
- SHA-1 (Secure Hash Algorithm 1): Erzeugt einen 160-Bit-Hash. Ebenfalls veraltet und anfällig für Kollisionen.
- SHA-256 (SHA-2-Familie): Erzeugt einen hochsicheren 256-Bit-Hash (64 Hexadezimalzeichen). Er ist der aktuelle Industriestandard für digitale Signaturen, SSL-Zertifikate und Blockchain-Technologien.
- SHA-3: Die neueste Generation von SHA, basierend auf dem Keccak-Verfahren, mit verbesserter mathematischer Absicherung gegen künftige Entschlüsselungstechnologien.
Algorithmen im direkten Vergleich
Die Wahl des richtigen Algorithmus hängt entscheidend vom Einsatzzweck ab. Diese Tabelle fasst die wichtigsten Verfahren zusammen:
| Algorithmus | Länge | Geschwindigkeit | Einsatzzweck | Status |
|---|---|---|---|---|
| MD5 | 128 Bit | sehr schnell | (früher Prüfsummen) | unsicher |
| SHA-1 | 160 Bit | sehr schnell | (früher Git/TLS) | veraltet |
| SHA-256 | 256 Bit | schnell | Signaturen, Integrität, Zertifikate | sicher |
| SHA-3 | variabel | mittel | zukunftssichere Integrität | sicher |
| BCrypt | 184 Bit | langsam (einstellbar) | Passwort-Hashing | sicher |
| Argon2id | variabel | langsam (speicherhart) | Passwort-Hashing (Standard) | empfohlen |
Faustregel: Je schneller ein Algorithmus, desto besser für Integritätsprüfungen – und desto schlechter für Passwörter, weil schnelle Hashes per Brute-Force leichter angreifbar sind.
2. Langsame Hash-Algorithmen (Passwort-Hashing)
Passwörter dürfen niemals mit schnellen Algorithmen wie SHA-256 gehasht werden. Da Grafikkarten (GPUs) Milliarden SHA-256-Hashes pro Sekunde berechnen können, wären solche Hashes per Brute-Force-Angriff (Ausprobieren) im Nu geknackt. Passwort-Algorithmen müssen künstlich verlangsamt werden.
- BCrypt: Nutzt ein rechenintensives Verfahren basierend auf dem Blowfish-Verschlüsselungsalgorithmus. Es besitzt einen eingebauten Salt-Wert (Zufallsdaten zur Absicherung gegen Rainbow Tables) und einen konfigurierbaren Kostenfaktor (Work Factor), der die Berechnungszeit steuert.
- Argon2id: Der Gewinner der Password Hashing Competition (PHC) und der modernste Standard. Argon2id lässt sich bezüglich der Rechenzeit, des Speicherbedarfs (Memory Hardness) und der CPU-Parallelisierung konfigurieren und ist somit extrem widerstandsfähig gegen GPU- und ASIC-basierte Brute-Force-Angriffe.
Warum Passwort-Salting überlebenswichtig ist
Würde man Passwörter ohne weitere Massnahmen hashen, hätten zwei Nutzer mit demselben Passwort (z. B. 123456) auch denselben Hash in der Datenbank stehen. Angreifer könnten mit vorbereiteten Tabellen (den sogenannten Rainbow Tables) bekannte Hashes blitzschnell zurückübersetzen.
Ein Salt ist eine zufällige Zeichenkette, die vor dem Hashen an das Passwort angehängt wird. Da jeder Nutzer ein einzigartiges, zufälliges Salt erhält, erzeugen identische Passwörter völlig unterschiedliche Hashes. Rainbow Tables werden damit wertlos.
Praxisbeispiel: Der Lawineneffekt in Zahlen
Der Lawineneffekt lässt sich an SHA-256 anschaulich zeigen. Eine einzige geänderte Stelle (allerate vs. Allerate) erzeugt einen vollständig anderen Hash:
SHA-256("allerate") = 7d4e3f... (64 Hex-Zeichen)
SHA-256("Allerate") = b1c9a0... (völlig anderer Wert)
Obwohl sich nur ein Bit der Eingabe ändert, unterscheiden sich im Schnitt rund die Hälfte aller Ausgabebits. Genau diese Eigenschaft macht Hashes als Integritätsprüfung so wertvoll: Schon eine minimale Manipulation an einer Datei fällt sofort auf.
Vorher/Nachher: Eine Passwortdatenbank absichern
Ein Altsystem speichert Passwörter unsicher – die Migration auf ein modernes Verfahren läuft schrittweise ab:
- Vorher (kritisch): Passwörter werden als ungesalzene MD5-Hashes abgelegt. Ein Angreifer mit Datenbankzugriff knackt schwache Passwörter mit fertigen Rainbow Tables in Sekunden; identische Passwörter sind sofort als gleiche Hashes erkennbar.
- Nachher (sicher): Bei der nächsten Anmeldung wird das eingegebene Passwort geprüft und sofort mit Argon2id (inkl. individuellem Salt) neu gehasht. Identische Passwörter ergeben nun unterschiedliche Hashes, und ein Brute-Force-Angriff wird durch die speicherharte Berechnung praktisch undurchführbar.
Die Lehre: Niemals selbst «kryptografische Kreativität» walten lassen (z. B. doppeltes MD5). Setzen Sie auf etablierte, geprüfte Bibliotheken und einen modernen Standard wie Argon2id.
[!TIP] Benötigen Sie eine kryptografische Prüfsumme einer Textzeile oder möchten Sie ein Passwort mit einem sicheren BCrypt-Hash ausstatten? Verwenden Sie den Hash Generator auf balou.tools für eine schnelle und datenschutzkonforme Generierung direkt in Ihrem Browser. Eine Übersicht über weitere praktische Werkzeuge finden Sie in den Developer Tools.
Häufig gestellte Fragen (FAQ)
Kann man einen Hash-Wert wieder entschlüsseln?
Nein. Ein Hash-Verfahren ist eine mathematische Einwegfunktion. Das bedeutet, es ist unmöglich, aus dem fertigen Hash-Wert wieder die ursprünglichen Eingabedaten zu berechnen. Um ein Passwort zu verifizieren, muss der eingegebene Text erneut gehasht und das Ergebnis mit dem gespeicherten Hash verglichen werden.
Was ist eine Kollision bei Hash-Algorithmen?
Eine Kollision tritt auf, wenn zwei unterschiedliche Eingabewerte denselben Hash-Wert erzeugen. Bei älteren Algorithmen wie MD5 und SHA-1 wurden solche Kollisionen nachgewiesen, weshalb sie für Sicherheitsanwendungen nicht mehr verwendet werden dürfen. Moderne Algorithmen wie SHA-256 oder SHA-3 gelten als kollisionssicher.
Was ist der Unterschied zwischen Hashing und Verschlüsselung?
Verschlüsselung ist umkehrbar: Mit dem richtigen Schlüssel lässt sich der Klartext wiederherstellen. Hashing ist eine Einwegfunktion ohne Schlüssel – aus dem Hash lässt sich die Eingabe nicht zurückrechnen. Hashing dient der Integritätsprüfung und Passwortspeicherung, Verschlüsselung dem vertraulichen Transport von Daten.
Welcher Algorithmus eignet sich 2026 für neue Passwort-Hashes?
Argon2id ist die erste Wahl für neue Projekte, weil es speicher- und rechenintensiv konfigurierbar ist. Wo Argon2id nicht verfügbar ist, bleibt BCrypt mit ausreichend hohem Kostenfaktor (Work Factor) eine sichere Alternative. SHA-256 ist für Passwörter ungeeignet, da es zu schnell ist.