Bcrypt-Generator und -Prüfer
Bcrypt-Hash mit Kostenfaktor 4 bis 14 erzeugen, ein Passwort mit einem vorhandenen Hash abgleichen und Version, Kosten, Salt und Hash-Wert ablesen.
Passwort hashen
- Version
- Kosten
- Salt (22 Zeichen)
- Hash (31 Zeichen)
Passwort mit einem Hash abgleichen
- Version
- Kosten
- Salt (22 Zeichen)
- Hash (31 Zeichen)
So hashen Sie ein Passwort mit bcrypt
- Geben Sie unter Passwort hashen das Passwort ein. Ein Zähler zeigt seine Länge in UTF-8-Bytes und warnt Sie, sobald es mehr als 72 Bytes umfasst.
- Wählen Sie den Kostenfaktor (4–14). Die Zeile darunter zeigt die Zahl der Runden, zum Beispiel 10 → 2^10 = 1.024 Runden.
- Klicken Sie auf Hash erzeugen. Ein Fortschrittsbalken verfolgt die Berechnung, und die Seite bleibt währenddessen bedienbar. Danach zeigt das Tool die benötigte Zeit und den Bcrypt-Hash, bereit zum Kopieren.
- Der Hash wird in seine Bestandteile zerlegt: Version, Kosten, Salt (22 Zeichen) und Hash (31 Zeichen).
Um ein Passwort mit einem Hash abzugleichen, geben Sie das Passwort ein, fügen den Hash ein (ein gerade erzeugter Hash wird automatisch eingetragen) und klicken auf Passwort prüfen. Das Ergebnis zeigt, ob beide zusammenpassen. Mit Passwörter verbergen maskieren Sie beide Passwortfelder.
Das Hashen läuft in Ihrem Browser mit der Bibliothek bcryptjs, die erst geladen wird, wenn Sie sie zum ersten Mal brauchen. Weder Passwort noch Hash werden irgendwohin gesendet.
So funktioniert bcrypt
bcrypt (Provos und Mazières, 1999) ist eine Passwort-Hashfunktion, die auf der Blowfish-Chiffre aufbaut. Anders als SHA-256 ist sie absichtlich langsam, und diese Langsamkeit lässt sich einstellen: Der Kostenfaktor ist ein Exponent zur Basis zwei, jede Erhöhung um 1 verdoppelt also den Aufwand. Kostenfaktor 10 bedeutet 1.024 Durchläufe der aufwendigen Schlüsselvorbereitung, Kostenfaktor 12 bedeutet 4.096. Beim Einloggen fällt das kaum ins Gewicht, macht aber das Knacken einer gestohlenen Datenbank per Brute Force erheblich teurer.
Ein Hash wie $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy ist so aufgebaut:
$2b$: die Version.$2a$und$2y$(PHP) sind kompatibel und lassen sich hier prüfen;$2x$kennzeichnet Hashes aus einer alten, fehlerhaften Implementierung und wird abgelehnt.10: der Kostenfaktor.- Die nächsten 22 Zeichen: ein zufälliges 128-Bit-Salt im eigenen Base64-Alphabet von bcrypt (
./A-Za-z0-9). - Die letzten 31 Zeichen: das 184-Bit-Ergebnis.
Da das Salt zufällig ist und im Hash gespeichert wird, ergibt dasselbe Passwort zweimal gehasht zwei verschiedene Hashes – und beide werden korrekt verifiziert. Aus demselben Grund prüft man Passwörter mit einer Verify-Funktion, statt Hashes direkt zu vergleichen.
Den richtigen Kostenfaktor wählen
Wählen Sie den höchsten Kostenfaktor, den sich Ihr Server leisten kann, ohne dass Logins spürbar langsam werden – typischerweise etwa eine Viertelsekunde pro Hash. OWASP empfiehlt für bcrypt einen Kostenfaktor von mindestens 10. Browser führen bcrypt in JavaScript aus, was um ein Mehrfaches langsamer ist als eine native Implementierung auf dem Server: Ab Kostenfaktor 12 weist das Tool darauf hin, dass das Hashen eine bis mehrere Sekunden dauern kann, und jede weitere Stufe verdoppelt die Zeit. Die Arbeit wird in kurze Abschnitte aufgeteilt, damit die Seite nicht einfriert.
Für neue Systeme bevorzugt OWASP inzwischen Argon2id; bcrypt bleibt akzeptabel, wo Argon2id nicht verfügbar ist.
Die Grenze von 72 Bytes
bcrypt verwendet nur die ersten 72 Bytes des Passworts; alles danach wird stillschweigend ignoriert. Bytes sind keine Zeichen: Ein Umlaut wie „ä“ belegt in UTF-8 2 Bytes, ein Emoji 4. Zwei lange Passwörter mit denselben ersten 72 Bytes ergeben denselben Hash. Der Byte-Zähler warnt Sie, wenn ein Passwort zu lang ist. Manche Systeme hashen lange Passwörter vorab (etwa mit HMAC-SHA256 und anschließend Base64), bevor sie bcrypt anwenden. Übergeben Sie dabei nie rohe binäre Digests, denn ein Null-Byte würde das Passwort in vielen Implementierungen vorzeitig beenden.
Häufige Fragen
Warum ergibt dasselbe Passwort jedes Mal einen anderen Hash?
Jeder Hash erhält ein neues zufälliges Salt, das im Hash selbst gespeichert ist. Die Schaltfläche Passwort prüfen liest Salt und Kostenfaktor aus dem Hash und berechnet ihn neu, sodass jede Variante erfolgreich verifiziert wird.
Kann man einen bcrypt-Hash entschlüsseln?
Nein. bcrypt ist eine Einwegfunktion. Ein Passwort lässt sich nur zurückgewinnen, indem man es errät und jeden Versuch hasht – und genau das macht der Kostenfaktor langsam.
Welchen Kostenfaktor sollte ich verwenden?
Mindestens 10, gern mehr, solange Ihr Server schnell genug bleibt. Messen Sie auf Ihrer Produktionshardware: Die hier angezeigte Zeit gilt für JavaScript in Ihrem Browser, das meist langsamer ist als ein Server.
Sind $2a$-, $2b$- und $2y$-Hashes austauschbar?
Für Passwörter unter 256 Bytes liefern sie dasselbe Ergebnis, und dieses Tool prüft alle drei. $2b$ behob einen Überlauffehler bei der Längenberechnung in der Implementierung von OpenBSD, und $2y$ ist die PHP-Bezeichnung für eine korrekte Implementierung.
Kann ich hier gefahrlos ein echtes Passwort eingeben?
Alles läuft lokal, nichts wird gesendet oder gespeichert. Für echte Konten ist es trotzdem gute Praxis, mit einem Beispielpasswort zu testen statt mit einem, das Sie tatsächlich verwenden.
Ähnliche Tools
- Hash-Generator MD5-, SHA-1-, SHA-256- und SHA-512-Hashes von Text oder Dateien beliebiger Größe erzeugen und Prüfsummen vergleichen – alles lokal im Browser.
- Passwort-Generator Kostenloser Passwort-Generator: sichere Zufallspasswörter mit 4 bis 128 Zeichen direkt im Browser erstellen. Nichts wird gespeichert oder gesendet.
- Passwortstärke prüfen Testen Sie, wie sicher Ihr Passwort ist: Bewertung, geschätzte Knackzeit in vier Angriffsszenarien und konkrete Tipps, lokal im Browser geprüft.
- HMAC-Generator HMAC-SHA1, SHA-256, SHA-384 oder SHA-512 mit Text-, Hex- oder Base64-Schlüssel berechnen, als Hex und Base64 ausgeben und Webhook-Signaturen im Browser prüfen.