Bcrypt-Generator und -Verifizierer
Erzeuge bcrypt-Passwort-Hashes und prüfe ein Passwort gegen einen vorhandenen Hash, vollständig in deinem Browser.
Bcrypt-Generator und -Verifizierer wird geladen… Wenn nichts passiert, aktiviere JavaScript.
Bcrypt ist eine Passwort-Hash-Funktion, die 1999 von Niels Provos und David Mazieres entworfen wurde, speziell um gespeicherte Passwörter widerstandsfähig gegen Brute-Force-Knacken zu machen. Anders als schnelle Allzweck-Prüfsummen wie MD5 oder SHA-256 ist bcrypt absichtlich langsam und enthält einen einstellbaren Kostenfaktor, der festlegt, wie viel Rechenarbeit jeder Hash erfordert. Jeder bcrypt-Hash bettet außerdem ein eindeutiges zufälliges Salt ein, sodass zwei Benutzer mit demselben Passwort völlig unterschiedliche Hashes erzeugen, und eine einzige Ausgabezeichenkette trägt alles, was nötig ist, um ein Passwort später zu prüfen: die Algorithmus-Version, die Kosten, das Salt und den Digest. Dieses in sich geschlossene Format ist der Grund, warum bcrypt-Hashes direkt in einer Datenbankspalte gespeichert werden können.
Häufig gestellte Fragen
Werden die Passwörter und Hashes, die ich eingebe, irgendwohin gesendet?
Was ist der Kostenfaktor und welchen Wert sollte ich verwenden?
Warum fügt bcrypt automatisch ein Salt hinzu?
Kann ich einen bcrypt-Hash in das Passwort zurückverwandeln?
Woher weiß der Verifizieren-Modus, ob ein Passwort übereinstimmt?
Wie unterscheidet sich bcrypt von SHA-256 im Hash-Generator?
Was bedeuten die Präfixe $2a$ und $2b$?
Hat bcrypt eine Begrenzung der Passwortlänge?
Über Bcrypt-Generator und -Verifizierer
Dieses Werkzeug hat zwei Modi. Im Hash-Modus gibst du ein Passwort ein und wählst einen Kostenfaktor von 8, 10 oder 12 Runden, und es erzeugt eine vollständige bcrypt-Hash-Zeichenkette, die mit einer Markierung wie $2a$ oder $2b$ beginnt. Höhere Kosten verdoppeln die Arbeit pro Schritt ungefähr, daher ist 12 spürbar langsamer als 10, der übliche Standardwert. Im Verifizieren-Modus fügst du einen vorhandenen bcrypt-Hash und ein Kandidatenpasswort ein, und das Werkzeug meldet, ob sie übereinstimmen. Die Prüfung funktioniert, indem bcrypt mit dem aus dem gespeicherten Hash entnommenen Salt und den Kosten erneut ausgeführt und dann das Ergebnis verglichen wird, genau so prüft ein Anmeldesystem ein Passwort, ohne es jemals im Klartext zu speichern.
Alles läuft lokal in deinem Browser mit einer JavaScript-Implementierung von bcrypt. Die Passwörter und Hashes, die du eingibst, werden niemals hochgeladen, übertragen oder protokolliert, was das Werkzeug sicher macht, um mit echten Anmeldedaten zu experimentieren, während du lernst, ein Backend testest oder eine Entwicklungsdatenbank befüllst. Beachte, dass bcrypt eine Einwegfunktion ist: Es gibt keinen Dekodiermodus, weil ein korrekter Hash nicht in das ursprüngliche Passwort zurückverwandelt werden kann. Sie unterscheidet sich auch von den schnellen Hashes im Werkzeug Hash-Generator. Verwende bcrypt (oder eine moderne Alternative wie Argon2) zum Speichern von Passwörtern, und behalte SHA-artige Digests für Prüfsummen, Integritätsprüfungen und Fingerabdrücke vor, die keine Passwörter betreffen.
Warum Langsamkeit ein Merkmal ist, kein Fehler
Die meiste Software wird so schnell wie möglich konstruiert, doch bcrypt wurde absichtlich langsam entworfen, und diese Entscheidung ist der ganze Sinn. Als Niels Provos und David Mazieres bcrypt 1999 auf der USENIX vorstellten, bauten sie es auf dem aufwendigen Schlüssel-Setup-Schritt der Blowfish-Chiffre auf und fügten einen einstellbaren Kostenfaktor hinzu. Das Geniale am Entwurf ist, dass die Kosten nicht im Algorithmus festgeschrieben sind; während Computer schneller werden, können Verteidiger die Kosten einfach erhöhen, damit das Knacken von Passwörtern genauso mühsam bleibt wie Jahre zuvor.
Das ist wichtig, weil die Bedrohung asymmetrisch ist. Ein legitimer Server hasht ein Passwort pro Anmeldung, daher ist ein Hash, der eine Fünftelsekunde dauert, kaum spürbar. Ein Angreifer, der eine Passwortdatenbank stiehlt, will dagegen Milliarden von Versuchen durchführen, und dieselbe Fünftelsekunde pro Versuch macht aus einem Nachmittag des Knackens Jahrhunderte. Schnelle Hashes wie MD5 und ungesalzenes SHA-1 brechen unter modernen GPUs und Spezialhardware zusammen, die zehn Milliarden Kandidaten pro Sekunde testen; die einstellbare Langsamkeit von bcrypt und sein Salt pro Passwort bremsen zugleich Brute Force und Rainbow Tables.
Weil der Kostenfaktor in jedem Hash steckt, kann ein System seine Sicherheit im Laufe der Zeit transparent aufrüsten. Wenn sich ein Benutzer anmeldet, kann der Server die im gespeicherten Hash eingebetteten Kosten prüfen, und falls sie unter dem aktuellen Ziel liegen, das frisch verifizierte Passwort mit höheren Kosten neu hashen und den neuen Wert speichern. Bcrypt ist seit 1999 bemerkenswert gut gealtert, und obwohl neuere Funktionen wie scrypt und Argon2 Speicherhärte hinzufügen, um spezialisierter Hardware noch besser zu widerstehen, bleibt bcrypt ein solider, breit unterstützter Standard für die Passwortspeicherung.