Kryptografie

BCrypt-Validierung

Überprüft, ob der Hash aus dem eingegebenen Text berechnet wurde.


Hash
Text

Übereinstimmung

Keine Übereinstimmung

Tips

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

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