bcrypt-Hash-Generator

Hash generieren

Höher = langsamer & sicherer. 12 ist ein guter Standard.

Gelegentlich haben Sie einen bcrypt-Hash aus einem alten Backup und ein Klartext-Passwort, und Sie müssen wissen, ob sie übereinstimmen. Oder Sie haben ein Passwort und möchten den Hash, den ein gegebener Kostenfaktor erzeugen würde. Dieses Tool macht beides: Geben Sie ein Passwort ein, und es generiert einen neuen Hash, fügen Sie einen Hash und einen Kandidaten ein, und es sagt Ihnen, ob die Überprüfung erfolgreich ist — unter Verwendung des gleichen konstanten Zeitvergleichs wie bei einer Produktionsanmeldung.

bcrypt generieren oder überprüfen

  1. 1

    Wählen Sie einen Modus

    Generieren Sie einen neuen Hash aus einem Passwort oder überprüfen Sie ein Passwort gegen einen vorhandenen `$2a$` / `$2b$` / `$2y$` Hash.

  2. 2

    Zum Generieren: Klartext und Kosten eingeben

    Kosten 4-14; 10-12 ist normal. Ein 16-Byte zufälliges Salt wird für jeden Hash erstellt.

  3. 3

    Zum Überprüfen: Hash und Klartext einfügen

    Das Tool extrahiert das Salt und die Kosten aus dem Hash und hasht den Klartext mit den gleichen Parametern erneut.

  4. 4

    Lesen Sie das Ergebnis

    Der Generierungsmodus kopiert den 60-Zeichen-Hash; der Überprüfungsmodus gibt eine grüne Übereinstimmung oder eine rote Nichtübereinstimmung zurück.

Interna des Überprüfungsmodus

Gegeben ist ein gespeicherter Hash wie:

$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6

Der Verifier:

  1. Analysiert Version (2b), Kosten (12), Salt (erste 22 Zeichen nach den Kosten) und Digest (letzte 31 Zeichen).
  2. Führt bcrypt erneut auf dem Kandidaten-Klartext mit dem extrahierten Salt und den Kosten aus.
  3. Vergleicht das resultierende Digest mit dem Original unter Verwendung eines konstanten Zeitvergleichs.

Ein erfolgreicher Vergleich ergibt true; jede Abweichung ergibt false.

Konstanter Zeitvergleich

Der Vergleich von zwei Strings mit einem naiven == gibt sofort zurück, sobald ein Byte abweicht — ein Timing-Seitenkanal, der den Hash Zeichen für Zeichen über genügend Proben leaken kann. Produktionspasswortprüfungen (und dieses Tool) verwenden einen konstanten Zeitvergleich, der immer jedes Byte untersucht, sodass die Entscheidungszeit nicht davon abhängt, wie viele führende Bytes übereinstimmen.

Häufige Diagnosefälle

Symptom Wahrscheinliche Ursache
Überprüfung schlägt fehl, Sie sind sich des Passworts sicher Nachfolgende Leerzeichen oder BOM im Eingabewert. Beides entfernen.
Überprüfung schlägt fehl, Version 2y Einige Bibliotheken mögen 2y nicht; es ist gültig und kompatibel. Neu hashen mit 2b in Zukunft.
Hash zu kurz / fehlerhaft Kein bcrypt-Hash. MD5 hat 32 Hex-Zeichen, SHA-1 hat 40, bcrypt hat 60 mit $-Trennzeichen.
Kostenabweichungswarnung Gespeicherte Kosten liegen unter Ihrem Richtlinienminimum. Neu hashen bei der nächsten erfolgreichen Anmeldung.

Neu-Hashen bei der Anmeldung

Best Practice: Wenn ein Benutzer sich erfolgreich anmeldet, überprüfen Sie, ob der gespeicherte Hash eine niedrigere Kosten hat als Ihre aktuelle Richtlinie. Wenn ja, hashen Sie das Passwort zu den neuen Kosten neu und aktualisieren Sie die Datenbank. Innerhalb weniger Monate aktualisieren Sie die gesamte Benutzerbasis, ohne dass jemand sein Passwort ändern muss.

Was das Tool nicht tut

  • Massenüberprüfung — Entwickelt für einen Hash zur Zeit.
  • Knacken oder Brute Force — Wörterbuch- oder Regenbogentabellenangriffe sind absichtlich nicht im Umfang.
  • Klartext abrufen — bcrypt ist einseitig; wenn Sie das Passwort vergessen haben, ist der einzige Weg zurücksetzen.

Häufig gestellte Fragen

Nein. Das Hashing und die Überprüfung erfolgen in Ihrem Browser. Weder der Klartext noch der Hash verlassen die Seite.

Das Salt wird für jeden Hash zufällig generiert. Das ist der ganze Punkt — zwei Benutzer mit demselben Passwort erhalten unterschiedliche Hashes, was Regenbogentabellen überwindet.

Ja, genau das macht der Überprüfungsmodus: Fügen Sie den Hash ein, den Sie haben, fügen Sie ein Kandidatenpasswort ein, das Tool bestätigt oder verweigert eine Übereinstimmung.

Ja. Alle modernen Varianten interagieren — das Digest ist über Versionen hinweg kompatibel; nur das Tag unterscheidet sich. Einige alte $2$-Hashes aus Systemen der 2000er Jahre benötigen möglicherweise eine Bibliothek mit expliziter Unterstützung für ältere Versionen.

Verwandte Tools