BrowserTools
Werbung
Startseite / Encoder / Bcrypt-Generator und -Verifizierer

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?
Nein. Sowohl das Hashen als auch die Prüfung laufen vollständig in deinem Browser mit einer JavaScript-bcrypt-Implementierung. Nichts von dem, was du eintippst, wird hochgeladen, übertragen oder protokolliert. Das Werkzeug funktioniert weiterhin offline, sobald die Seite geladen ist, daher ist es sicher, es mit echten Anmeldedaten zu verwenden, während du testest oder lernst.
Was ist der Kostenfaktor und welchen Wert sollte ich verwenden?
Der Kostenfaktor (die Zahl nach dem zweiten Dollarzeichen in einem Hash) legt fest, wie viele Arbeitsrunden bcrypt durchführt, auf einer logarithmischen Skala. Jeder Schritt verdoppelt die Zeit pro Hash ungefähr. Kosten von 10 sind ein üblicher Standard; 12 ist stärker, aber langsamer. Wähle die höchsten Kosten, die dein Server verkraften kann, während die Antwortzeiten bei der Anmeldung akzeptabel bleiben, oft etwa 100 bis 250 Millisekunden pro Hash.
Warum fügt bcrypt automatisch ein Salt hinzu?
Ein Salt sind zufällige Daten, die in den Hash gemischt werden, damit identische Passwörter unterschiedliche Ausgaben erzeugen und vorberechnete Rainbow-Table-Angriffe vereitelt werden. Bcrypt erzeugt für jeden Hash ein frisches zufälliges Salt und bettet es direkt in die Ausgabezeichenkette ein, sodass du Salts nicht separat speichern oder verwalten musst. Der Verifizierer liest das Salt direkt aus dem gespeicherten Hash.
Kann ich einen bcrypt-Hash in das Passwort zurückverwandeln?
Nein. Bcrypt ist eine Einwegfunktion, daher gibt es keine Dekodieroperation und dieses Werkzeug hat keinen Dekodiermodus. Die einzige Möglichkeit, ein Passwort zu testen, besteht darin, einen Kandidaten mit demselben Salt und denselben Kosten zu hashen und zu vergleichen, genau das tut der Verifizieren-Modus. Wäre ein Hash umkehrbar, wäre er zum Schutz von Passwörtern nutzlos.
Woher weiß der Verifizieren-Modus, ob ein Passwort übereinstimmt?
Er entnimmt die Algorithmus-Version, den Kostenfaktor und das Salt, die im bcrypt-Hash gespeichert sind, hasht dein Kandidatenpasswort mit denselben Parametern erneut und prüft, ob der resultierende Digest dem gespeicherten gleicht. Dies ist derselbe Vorgang, den ein Anmeldesystem nutzt, weshalb du das ursprüngliche Passwort niemals irgendwo speichern musst.
Wie unterscheidet sich bcrypt von SHA-256 im Hash-Generator?
SHA-256 ist ein schneller kryptografischer Digest, gedacht für Prüfsummen, Integritätsprüfungen und Fingerabdrücke; er ist absichtlich schnell, was ihn zu einer schlechten Wahl für Passwörter macht, weil Angreifer Milliarden von Versuchen pro Sekunde durchführen können. Bcrypt ist absichtlich langsam und gesalzen, speziell entworfen, um das Erraten von Passwörtern teuer zu machen. Verwende den Hash-Generator für die Integrität von Dateien oder Daten und bcrypt zum Speichern von Passwörtern.
Was bedeuten die Präfixe $2a$ und $2b$?
Die führende Markierung kennzeichnet die bcrypt-Variante, die den Hash erzeugt hat. $2a$ ist die seit Langem gängige Version, während $2b$ eine korrigierte Variante ist, die einen Überlauffehler im Zusammenhang mit sehr langen Eingaben behoben hat. Beide werden breit unterstützt und verifizieren korrekt. Der Teil nach der Markierung kodiert die Kosten, und der Rest enthält Salt und Digest zusammen.
Hat bcrypt eine Begrenzung der Passwortlänge?
Ja. Bcrypt verarbeitet nur die ersten 72 Bytes des eingegebenen Passworts; alles darüber hinaus wird ignoriert. Für die meisten Passwörter ist das irrelevant, aber es ist wichtig, wenn du vor bcrypt vorhast oder lange Werte verkettest. Wenn du beliebig lange Eingaben unterstützen musst, hashe das Passwort zuerst mit SHA-256 oder verwende eine Funktion wie Argon2, die keine solche Begrenzung hat.

Ü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.

Werbung
Werbung
Werbung