BCrypt-Hash-Prüfer | Passwort und Hash kostenlos sofort abgleichen
Prüfen Sie kostenlos und in Sekunden, ob ein Passwort zu einem BCrypt-Hash passt. Funktioniert wie PHPs password_verify() und eignet sich ideal zum Debuggen von Login-Problemen. Unterstützt $2a$ und $2b$.
| Hash | |
|---|---|
| Text |
Übereinstimmung
Keine Übereinstimmung
Was ist eine BCrypt-Überprüfung?
Dieses Werkzeug prüft, ob ein eingegebenes Klartext-Passwort und ein vorhandener BCrypt-Hash aus derselben ursprünglichen Zeichenkette erzeugt wurden. Es arbeitet nach demselben Prinzip wie die PHP-Funktion password_verify() und eignet sich daher, um eine Anmeldeimplementierung zu bestätigen und Fehler darin zu suchen.
Ein BCrypt-Hash trägt sein Salt in sich, weshalb dieselbe Erzeugung aus demselben Passwort jedes Mal eine andere Zeichenkette liefert. Ein einfacher Zeichenkettenvergleich kann eine Übereinstimmung daher nicht feststellen: Das Salt muss vor dem Vergleich mit dem dafür vorgesehenen Verfahren herausgelöst werden, und diesen Schritt übernimmt dieses Werkzeug für Sie.
So verwenden Sie die BCrypt-Überprüfung
- Zeichenkette eingeben Tippen Sie das zu prüfende Klartext-Passwort in das Eingabefeld.
- Hash eingeben Fügen Sie einen BCrypt-Hash ein, der mit $2a$ oder $2b$ beginnt.
- Auf die Prüfen-Schaltfläche drücken Das Ergebnis – Übereinstimmung oder keine – erscheint auf der Stelle.
Tipps für die Nutzung
- BCrypt bettet das Salt in den Hash ein, sodass auch wenn der Hash-Wert jedes Mal unterschiedlich ist, er als Übereinstimmung gewertet wird, wenn er aus derselben ursprünglichen Eingabe erzeugt wurde.
- Dieses Tool verifiziert mit demselben Mechanismus wie PHPs
password_verify($password, $hash). - Beim Vergleich eines aus der Datenbank abgerufenen Hash-Werts mit einem eingegebenen Passwort verwenden Sie eine dedizierte Verifikationsfunktion anstelle eines einfachen String-Vergleichs (
==), um Timing-Angriffe zu verhindern. - Hash-Werte, die mit
$2a$beginnen, können ebenfalls als BCrypt verifiziert werden.
Wann die BCrypt-Überprüfung nützlich ist
Einen Anmeldeablauf debuggen
Prüfen Sie unmittelbar, ob ein in der Datenbank gespeicherter Hash zum erwarteten Passwort passt, ohne den Umweg über Ihren Anwendungscode.
Das Verhalten nach einem Passwortwechsel bestätigen
Testen Sie, ob ein aus einem neuen Passwort erzeugter Hash zum beabsichtigten Klartext passt.
Hashes bei einer Migration prüfen
Bestätigen Sie vorab, dass aus einem anderen System übernommene BCrypt-Hashes weiterhin funktionieren.
BCrypt-Glossar
- Salt
- Eine zufällige Zeichenkette, die beim Erzeugen des Hashes hinzugefügt wird. Sie sorgt dafür, dass dasselbe Passwort jedes Mal einen anderen Hash ergibt.
- password_verify()
- Die Standardfunktion von PHP, um ein Klartext-Passwort sicher mit einem Hash zu vergleichen. Sie löst das Salt intern automatisch heraus.
- Timing-Angriff
- Ein Angriff, der aus winzigen Unterschieden in der Verarbeitungszeit auf geheime Informationen schließt. Eine dafür vorgesehene Funktion, die in konstanter Zeit vergleicht, verhindert ihn.
- $2a$ / $2b$
- Die Präfixe, die die Version eines BCrypt-Hashes angeben. $2b$ ist die Version, die einen Fehler einer älteren Umsetzung behoben hat, und wird heute empfohlen.
Häufige Fragen
$2b$ ist eine fehlerbereinigte Version der älteren Implementierung, und ihre Verwendung wird derzeit empfohlen.
Übrigens – Hinter der Authentifizierung: Was sind diese wenigen Hundertstel-Sekunden beim Login
Wenn Sie den Login-Button in einem Webdienst drücken, ist ein Teil dieser wenigen Hundertstel-Sekunden vor dem Ergebnis die Zeit, die BCrypt für die Berechnung des Passwort-Hashes benötigt. Diese Verzögerung ist beabsichtigt — aus Sicherheitsgründen.
Ein Timing-Angriff ist eine Art von Seitenkanalangriff, bei dem ein Angreifer geheime Informationen durch Messung subtiler Unterschiede in der Verarbeitungszeit erschließt. Wenn ein Passwort mit einem einfachen String-Vergleich (==) verifiziert wird, variiert die Vergleichszeit leicht je nachdem, wo die Zeichen aufhören zu übereinstimmen. BCrypts Verifikationsfunktion ist so konzipiert, dass sie in konstanter Zeit läuft und damit gegen diesen Angriff sicher ist.
In realen Webanwendungen wird empfohlen, unabhängig davon, ob der Benutzer existiert oder nicht, in der gleichen Zeit zu antworten, als ob der Benutzer existieren würde, aber das Passwort falsch wäre. Wenn ein Angreifer "Benutzer existiert nicht" von "falsches Passwort" unterscheiden kann, gibt ihm das einen Hinweis zur Identifizierung gültiger Benutzernamen.