Passwort-Hashing schützt Nutzerkonten, indem Passwörter nicht als Klartext, sondern als sichere, irreversible Hashes gespeichert werden. Moderne Algorithmen wie bcrypt und Argon2id sowie individuelle Salts erhöhen die Sicherheit. So bleibt selbst bei Datenlecks der Schutz der Zugangsdaten gewährleistet.
Passwort-Hashing ist ein zentrales Konzept für die Sicherheit von Online-Konten. Während ein Passwort für Nutzer wie eine einfache Zeichenkette erscheint, handelt es sich für Webseiten um eine der sensibelsten Datenkategorien überhaupt. Werden Passwörter als Klartext gespeichert, können Angreifer nach einem Datenleck sofort auf zahlreiche Konten zugreifen. Deshalb setzen moderne Systeme auf Hashing - eine Methode, bei der nicht das eigentliche Passwort, sondern dessen irreversible digitale Darstellung gesichert wird.
Beim Registrieren eines Nutzers verarbeitet ein spezieller Algorithmus das Passwort und erzeugt daraus einen Hash. Dieser Hash wird in der Datenbank gespeichert. Beim Login berechnet die Webseite erneut den Hash des eingegebenen Passworts und gleicht ihn mit dem gespeicherten Wert ab. Stimmen beide überein, gilt das Passwort als korrekt.
Hashing macht Systeme zwar nicht vollkommen unangreifbar, aber es reduziert das Risiko bei einem Datenleck erheblich. Selbst wenn Angreifer an die Datenbank gelangen, sehen sie nur die Hashes, nicht aber die Passwörter selbst. Die Wiederherstellung von Passwörtern aus Hashes ist, sofern richtig implementiert, mit enormem Rechenaufwand verbunden.
Passwort-Hashing bedeutet, das Klartextpasswort mit einer Hashfunktion in eine Zeichenkette fester Länge umzuwandeln. Zum Beispiel wird aus dem Passwort PixelBurn2026! nach dem Hashen eine völlig andere Zeichenfolge, aus der sich das Original nicht einfach rekonstruieren lässt.
Hashfunktionen arbeiten nur in eine Richtung: Ein Passwort in einen Hash umzuwandeln ist einfach, den Hash zurückzuwandeln dagegen nicht möglich. Das unterscheidet sie von Verschlüsselung, bei der Daten mit dem richtigen Schlüssel wieder entschlüsselt werden können. Für Hashes gibt es keinen solchen Schlüssel.
Ein wichtiges Merkmal: Vorhersagbarkeit. Das gleiche Passwort ergibt immer den gleichen Hash, sofern die Bedingungen gleich sind. Dadurch kann die Webseite Passwörter prüfen, ohne sie im Klartext zu speichern.
Schon eine kleine Änderung im Passwort führt zu einem völlig anderen Hash. Password123 und Password124 unterscheiden sich nur durch ein Zeichen, erzeugen aber komplett unterschiedliche Hashes. Am Hash selbst ist nicht erkennbar, wie ähnlich sich die Passwörter waren.
Doch auch Hashes sind nicht absolut sicher. Ein Angreifer kann durch Ausprobieren gängiger Passwörter deren Hashes berechnen und mit der geklauten Datenbank vergleichen. Wird ein Treffer gefunden, wird das ursprüngliche Passwort bekannt. Die Sicherheit hängt deshalb auch vom verwendeten Algorithmus, der sogenannten Salz (Salt) und den Komplexitätsparametern ab.
Beim Anlegen eines Kontos darf eine Webseite das eingegebene Passwort niemals als Klartext abspeichern. Stattdessen verarbeitet der Server das Passwort mit einem Hashing-Algorithmus und speichert nur das Ergebnis - meist zusammen mit weiteren Parametern für die spätere Prüfung.
Beim nächsten Login gibt der Nutzer sein Passwort ein, der Server hasht es erneut und vergleicht das Ergebnis mit dem gespeicherten Wert. Stimmen die Werte überein, ist der Zugang freigegeben.
Ein korrekt entwickelter Dienst benötigt nach der Registrierung das Klartextpasswort nicht mehr. Der Server arbeitet nur noch mit dem Hash. Deshalb kann eine seriöse Webseite dem Nutzer das alte Passwort nie einfach auf Anfrage anzeigen.
Falls das Passwort vergessen wurde, senden sichere Dienste es nicht zurück. Stattdessen wird ein Reset-Prozess gestartet: Der Nutzer bestätigt den Zugriff und setzt ein neues Passwort, dessen Hash dann in der Datenbank gespeichert wird.
Diese Herangehensweise ist besonders wichtig bei einem Datenleck: Sind Passwörter als Klartext gespeichert, hat ein Angreifer sofort Zugangsdaten für alle Konten. Sind hingegen korrekt erzeugte Hashes gespeichert, muss er die Passwörter einzeln erraten - ein Aufwand, der stark vom Algorithmus und den Parametern abhängt.
Bewahrt eine Webseite Passwörter im Klartext auf, reicht schon ein einziges Datenleck zur vollständigen Kompromittierung aller Nutzerkonten. Angreifer müssen nichts entschlüsseln oder erraten - sie bekommen sofort Benutzernamen, E-Mail-Adressen und gültige Passwörter.
Das Risiko steigt zusätzlich, weil viele Nutzer dieselben Passwörter für verschiedene Dienste verwenden. So ermöglicht ein Datenleck bei einer Webseite dem Angreifer, die gestohlenen Kombinationen auf anderen Plattformen zu testen und mehrere Konten zu übernehmen.
Wie Sie nach einem solchen Vorfall richtig handeln, erfahren Sie im Beitrag "Wie Sie Datenlecks erkennen und Ihre Passwörter im Jahr 2025 schützen".
Auch einfaches Hashing reicht nicht, wenn zu schnelle Algorithmen verwendet werden. SHA-256 ist zwar perfekt für Integritätsprüfungen, aber nicht für die sichere Speicherung von Passwörtern gedacht. Moderne Grafikkarten können Millionen solcher Hashes pro Sekunde berechnen - gängige und einfache Passwörter lassen sich so im Handumdrehen erraten.
Angreifer versuchen in der Regel nicht, die Hashfunktion mathematisch umzukehren. Stattdessen greifen sie auf Wörterbücher mit häufigen Passwörtern, Kombinationen aus Wörtern, Zahlen und Symbolen zurück, berechnen deren Hashes und vergleichen diese mit der gestohlenen Datenbank. Je schneller der Algorithmus, desto mehr Varianten lassen sich pro Sekunde testen.
Deshalb basiert sicheres Passwort-Management auf mehreren Ebenen: Neben dem Hashing kommen eine individuelle Salt und spezialisierte Algorithmen zum Einsatz, die bewusst hohe Rechenleistung erfordern. Das verlangsamt automatisiertes Durchprobieren erheblich.
Selbst ein guter Hash-Algorithmus wird unsicher, wenn identische Passwörter immer denselben Hash ergeben. Haben zwei Nutzer das gleiche Passwort gewählt, sind ihre Hashes ohne weitere Maßnahmen identisch - das erleichtert Angreifern die Analyse und das Auffinden häufiger Passwörter.
Die Lösung: Salt - ein zufälliger Wert, der vor dem Hashen zum Passwort hinzugefügt wird. Jeder Nutzer bekommt eine eigene, einzigartige Salt. Dadurch erzeugen identische Passwörter unterschiedliche Hashes.
Beispiel: Zwei Nutzer wählen qwerty123 als Passwort. Mit unterschiedlichen Salts entstehen vollkommen verschiedene Hashes. Ein Angreifer kann also nicht einfach den Hash eines beliebten Passworts berechnen und damit alle betroffenen Nutzer finden.
Salts sind besonders effektiv gegen sogenannte Rainbow Tables - vorgefertigte Datenbanken mit Hashes gängiger Passwörter. Ohne Salt lassen sich schnell Treffer finden. Mit Salt muss der Angreifer für jeden Nutzer die Kombination neu berechnen.
Salts müssen nicht geheim sein - sie werden meist zusammen mit dem Passwort-Hash gespeichert, weil der Server sie zur Prüfung benötigt. Ihre Aufgabe ist es, jeden Hash einzigartig zu machen, nicht verborgen zu bleiben.
Doch auch Salt schützt schwache Passwörter nicht vor dem Erraten. Wer ein einfaches Passwort wählt, bleibt angreifbar. Deshalb sollte Salt immer zusammen mit einem spezialisierten Hash-Algorithmus eingesetzt werden, der jede Prüfungsrunde rechenintensiv macht.
Für Passwörter reicht es nicht, irgendeine kryptografische Hashfunktion zu verwenden. SHA-256 oder SHA-512 sind zwar schnell und effektiv für Datei-Integritätsprüfungen, aber gerade diese Geschwindigkeit ist ein Nachteil beim Schutz von Passwörtern. Je schneller der Hash berechnet wird, desto mehr Varianten kann ein Angreifer pro Sekunde testen.
Deshalb setzt man auf spezialisierte Algorithmen, die das Hashen absichtlich verlangsamen. Ein bekanntes Beispiel ist bcrypt. Hier kann die Rechenkomplexität angepasst werden ("cost"-Parameter). Für den normalen Nutzer ist die Verzögerung kaum spürbar, aber das massenhafte Durchprobieren von Passwörtern wird erheblich erschwert.
Ein moderner Ansatz ist Argon2. Dieser Algorithmus begrenzt Angreifer nicht nur durch die Zeit, sondern auch durch den benötigten Speicher. Das schützt besonders vor Angriffen mit Grafikkarten oder Spezialhardware, die viele einfache Operationen parallel ausführen. Für Passwörter wird meist Argon2id empfohlen, da es verschiedene Schutzmechanismen kombiniert.
Im Vergleich bcrypt vs. Argon2 bleibt bcrypt weiterhin eine solide Wahl, sofern er richtig konfiguriert ist. Für neue Projekte wird jedoch oft Argon2id bevorzugt, da er flexiblere Einstellungen für Rechenleistung und Speicherbedarf erlaubt.
Die Sicherheit hängt auch von den Parametern ab. Wird die Komplexität zu niedrig angesetzt, sind selbst moderne Algorithmen zu schnell. Mit steigender Hardware-Leistung werden Parameter regelmäßig angepasst, um den Spagat zwischen Nutzerfreundlichkeit und Sicherheit zu wahren.
Die Branche entwickelt zudem neue Login-Methoden, bei denen der Nutzer dem Server kein klassisches Passwort mehr übermitteln muss. Mehr dazu lesen Sie im Artikel "Passwortlose Sicherheit: Wie Passkeys und FIDO2 Passwörter ersetzen".
Passwort-Hashing ermöglicht es Webseiten, die Zugangsdaten ihrer Nutzer zu prüfen, ohne die Passwörter im Klartext zu speichern. In der Datenbank bleibt nur der Hashwert, und beim Login berechnet der Server ihn erneut, um die Werte abzugleichen.
Eine sichere Speicherstrategie umfasst mehr als nur die Hashfunktion: Individuelle Salts schützen gleiche Passwörter vor identischen Hashes, spezialisierte Algorithmen wie bcrypt und Argon2id machen automatisiertes Durchprobieren von Passwörtern deutlich aufwändiger.
Bewahrt ein Dienst Passwörter als Klartext oder mit zu schnellen Algorithmen und ohne Salt, kann schon ein einziges Datenleck tausende Konten gefährden. Das Grundprinzip moderner Systeme bleibt daher: Das Nutzerpasswort darf niemals in einer Form gespeichert werden, die sich direkt auslesen oder wiederherstellen lässt.