Erzeuge salted bcrypt-Hashes für Passwörter und verifiziere Klartext gegen einen vorhandenen Hash – alles im Browser.
Erzeuge salted bcrypt-Hashes für Passwörter und verifiziere Klartext gegen einen vorhandenen Hash – alles im Browser. Erzeuge salted bcrypt-Hashes für Passwörter und verifiziere Klartext gegen einen vorhandenen Hash – alles im Browser.
Erzeugter bcrypt-Hash
Hintergrund
Was bcrypt ist und warum es wichtig ist
bcrypt ist eine adaptive Passwort-Hash-Funktion, die 1999 von Niels Provos und
David Mazieres entworfen wurde. Im Gegensatz zu schnellen Digests wie MD5 oder SHA-256
kostet bcrypt bewusst CPU-Zeit: Jeder Hash führt die Blowfish-Chiffre über eine
konfigurierbare Anzahl von Runden aus, und die Arbeit verdoppelt sich mit jeder
Erhöhung des Kostenfaktors. Diese Verzögerung macht Offline-Wörterbuch- und
Brute-Force-Angriffe teuer. Eine korrekte bcrypt-Implementierung bettet zudem ein
zufälliges 128-Bit-Salt in die Ausgabezeichenfolge ein, sodass zwei Hashes desselben
Passworts immer unterschiedlich sind und Rainbow-Tables dagegen nutzlos sind.
Wie man einen bcrypt-Hash liest
Ein bcrypt-Hash sieht aus wie $2b$12$e0.6kJ8a5X8u5Yp3qR5E0e9dF4z3W2c1v0b9n8m7l6k5j4h3g2f1. Die
Teile nach den führenden Dollarzeichen enthalten die Algorithmusversion, die Kosten
und das Salt:
$2b$ -- die Algorithmusrevision. $2a$ und $2y$ sind ältere Varianten mit
subtilen Unterschieden bei der Behandlung des 8-Bit-Vorzeichenfehlers; $2b$ ist die
aktuelle Empfehlung und das, was bcryptjs ausgibt.
12 -- der Kostenfaktor. 2^12 = 4096 Runden des Schlüsselplans. Jedes +1
verdoppelt die Zeit; 10–12 ist ein sinnvoller Standard für interaktives Login,
während 12–14 für gespeicherte Anmeldedaten geeignet ist.
Die verbleibenden 53 Zeichen enthalten ein 22-stelliges (128-Bit-)Base64-Salt plus
eine 31-stellige (184-Bit-)Prüfsumme. Die gesamte Zeichenfolge ist ein eigenständiger
Datensatz: Der Verifizierer liest Version, Kosten und Salt aus dem Hash heraus
und führt die Ableitung erneut aus, um zu vergleichen.
Wie man dieses Werkzeug verwendet
Gib ein Passwort in das Eingabefeld ein, wähle einen Kostenfaktor und drücke Hash. Der
erzeugte Hash erscheint im Ausgabefeld und wird auch in das Verifizierungsfeld eingetragen.
Um einen vorhandenen Hash zu prüfen, füge ihn in das Verifizierungsfeld ein und gib das
Kandidat-Passwort im Eingabefeld ein: Die Seite vergleicht sofort und zeigt
einen grünen Haken oder ein rotes Kreuz. Da der Vergleich mit
bcrypt.compareSync erfolgt, verrät er nie, wie nahe ein falscher Versuch war – jeder
Versuch wird vollständig gehasht, bevor das Ergebnis feststeht.
Sicherheitshinweise und Einschränkungen
bcrypt kürzt die Eingabe auf 72 Byte: längere Passwörter werden stillschweigend abgeschnitten,
sodass zwei Passwörter, die die ersten 72 Byte teilen, als gleich verglichen werden. Wenn du
längere Eingaben benötigst, hashe vorab mit SHA-256 (hex-kodiert) und hashe diesen Digest mit bcrypt.
bcrypt ist ein bewusst speicherschonender Algorithmus – er wehrt GPU-Arrays weniger gut ab
als speicherharte Entwürfe wie Argon2 oder scrypt, aber seine 4-KB-Tabelle
und der 64-Byte-Zustand machen günstiges ASIC-Cracking unattraktiv. Für völlig neue
Systeme ist Argon2id oft die bessere Wahl; bcrypt bleibt eine hervorragende,
weit verbreitete Option für die Legacy-Kompatibilität und für Fälle, in denen die
Laufzeit kein Argon2 bereitstellen kann. Diese Seite läuft vollständig in deinem Browser:
Das Passwort und der Hash verlassen niemals dein Gerät, und du kannst den Code-Pfad
(MIT/BSD bcryptjs) in public/assets einsehen.
Häufig gestellte Fragen
Warum erzeugt dasselbe Passwort jedes Mal einen anderen Hash?
Für jeden Hash wird ein zufälliges 128-Bit-Salt erzeugt und in die Ausgabe eingebettet. Der Verifizierer liest das Salt aus dem Hash erneut aus, sodass die Korrektheit unbeeinflusst bleibt, aber identische Eingaben niemals identische Ausgaben liefern.
Welchen Kostenfaktor sollte ich verwenden?
Für interaktive Logins ist 10–12 ein guter Standard. Für gespeicherte Anmeldedaten möchtest du vielleicht 12–14. Höhere Kosten sind sicherer, aber langsamer; wähle den größten Wert, den dein Server pro Login verkraften kann.
Wird bcrypt auch 2026 noch empfohlen?
Ja. bcrypt ist weiterhin weit verbreitet und gilt als sicher, wenn es mit einem Kostenwert von 10+ verwendet wird. Für völlig neue Systeme werden speicherharte Argon2id oder scrypt oft bevorzugt, aber bcrypt ist eine solide, erprobte Wahl, besonders dort, wo jene nicht verfügbar sind.
Warum ist bcrypt langsamer als SHA-256?
Das ist der Sinn der Sache. SHA-256 ist darauf ausgelegt, schnell zu sein, was Angreifern Milliarden von Versuchen pro Sekunde erlaubt. bcrypts teurer Schlüsselplan und das Salt zwingen Angreifer, echte Zeit pro Versuch aufzuwenden, und machen Offline-Angriffe unpraktisch.
Was bedeutet das 72-Byte-Limit für meine Passwörter?
bcrypt ignoriert alles ab Byte 72. Zwei Passwörter, die länger als 72 Byte sind und dasselbe Präfix teilen, werden identisch verifiziert. Um längere Geheimnisse zu unterstützen, hashe sie zuerst mit SHA-256 (als Hex) und hashe den Digest mit bcrypt.
Wird mein Passwort an einen Server gesendet?
Nein. Alles läuft lokal in deinem Browser mit der gebündelten bcryptjs-Bibliothek. Du kannst die Verbindung zum Netzwerk trennen, nachdem die Seite geladen ist, und sie funktioniert trotzdem.