Bcrypt-Generator — Passwörter mit Bcrypt hashen und prüfen

Hashe ein Passwort mit bcrypt bei frei wählbaren Kosten, prüfe ein Passwort gegen einen bcrypt-Hash und sieh, was jeder Teil des Hashs bedeutet.

bcrypt-Hash erzeugen

28 von 72 Bytes (UTF-8).
Jede Stufe verdoppelt die Zeit. 10–12 ist der übliche Bereich für Login-Hashes.

Passwort mit einem Hash abgleichen

Aufbau des Hashes
Version$2b$2b – OpenBSD-Fix von 2014 für Passwörter über 255 Bytes. Aktueller Standard in bcrypt (C/Python/Node).
Kosten102^10 = 1.024 Runden der Schlüsselexpansion
SaltO.0JDwgDTALNNPsTWXP1YO22 Zeichen = 128 Zufallsbits, bcrypt-Base64
Hash2o9FuEFCZZMBsOKg910t7.RrUqVQsmW31 Zeichen = 184 Bit der 192-Bit-Ausgabe

Passwörter werden in deinem Browser mit bcryptjs gehasht und geprüft. Nichts wird gesendet, gespeichert oder protokolliert. Trotzdem: Füge kein echtes Produktionspasswort in eine Webseite ein. Alle kostenlosen Tools ansehen.

Ein Problem gefunden oder etwas, das besser sein könnte? Wir lesen jede Nachricht und beheben Fehler schnell.

Dieser Bcrypt-Generator hasht ein Passwort mit bcrypt bei einem Kostenfaktor von 4 bis 15, prüft ein Passwort gegen einen vorhandenen bcrypt-Hash und zerlegt einen Hash in Version, Kosten, Salt und Digest. Das ist nützlich, um einen Testnutzer anzulegen, bei einer Migration zu prüfen, ob ein Hash in deiner Datenbank zu einem bekannten Passwort passt, oder um zu verstehen, was $2b$12$ eigentlich bedeutet. Das Hashen läuft in deinem Browser mit bcryptjs, einer JavaScript-Implementierung, die mit den bcrypt-Bibliotheken von Node.js, PHP, Python, Ruby und Go kompatibel ist. Um mehrere Testkonten anzulegen, hasht der Massenmodus eine Liste mit bis zu 50 Passwörtern in einem Durchgang.

Bcrypt ist absichtlich langsam, und jede Stufe mehr an Kosten verdoppelt die Zeit. Das Tool zeigt während der Arbeit den Fortschritt an und schätzt, wie lange andere Kostenfaktoren auf deinem Gerät dauern würden, sodass du den Kompromiss siehst, bevor du einen für einen Server wählst. Ein Hinweis, der für jedes Online-Tool gilt: Füge kein echtes Produktivpasswort in eine Webseite ein, die du nicht kontrollierst. Nutze das hier für Testwerte und um Hashes zu verstehen.

So funktioniert’s

  1. Gib ein Passwort ein und wähle einen Kostenfaktor; 10 bis 12 ist für Login-Systeme typisch.
  2. Klicke auf Hash erzeugen. Währenddessen wird ein Fortschrittsbalken angezeigt; bei Kosten 14 oder 15 kann das mehrere Sekunden dauern.
  3. Kopiere den 60 Zeichen langen Hash. Erneutes Erzeugen ergibt einen anderen Hash, weil das Salt zufällig ist; beide lassen sich verifizieren.
  4. Um einen Hash zu prüfen, füge ihn zusammen mit dem zu testenden Passwort in den Prüfbereich ein und klicke auf Prüfen.
  5. Lies in der Tabelle zum Aufbau des Hashs ab, welche Version und welche Kosten der Hash verwendet.

Häufige Fragen

Kann ich mehrere Passwörter auf einmal mit bcrypt hashen?

Ja. Wechsle zu „Liste von Passwörtern (Massenmodus)“, füge bis zu 50 Passwörter ein, eines pro Zeile (Leerzeichen zählen mit; leere Zeilen werden übersprungen), und klicke auf Hashen. Sie werden nacheinander mit den gewählten Kosten gehasht, jedes mit eigenem zufälligem Salt, und die Seite bleibt währenddessen bedienbar. Kopiere die Hashes in derselben Reihenfolge wie deine Liste oder lade eine CSV herunter, mit oder ohne die Klartextpasswörter. Das Limit gibt es, weil bcrypt absichtlich langsam ist: 50 Hashes bei Kosten 12 dauern schon eine Weile.

Welchen Kostenfaktor sollte ich für bcrypt verwenden?

Wähle die höchsten Kosten, bei denen ein einzelner Hash auf deinem Produktivserver noch eine erträgliche Verzögerung hat, typischerweise 100 ms bis 1 Sekunde. Auf aktueller Server-Hardware sind das meist 10 bis 12. Das Password Storage Cheat Sheet von OWASP setzt einen minimalen Work Factor von 10 an. Miss auf dem echten Server statt auf einem Laptop, und denk daran, dass hohe Kosten deinen Login-Endpunkt auch leichter mit Anfragen überlastbar machen.

Warum ergibt dasselbe Passwort jedes Mal einen anderen bcrypt-Hash?

Jeder Hash enthält ein neues zufälliges 128-Bit-Salt, das im Hash selbst gespeichert ist (die 22 Zeichen nach den Kosten). Das ist gewollt: Zwei Nutzer mit demselben Passwort bekommen unterschiedliche Hashes, und vorberechnete Tabellen sind nutzlos. Um ein Passwort zu prüfen, liest bcrypt Salt und Kosten aus dem gespeicherten Hash, hasht den Kandidaten damit erneut und vergleicht.

Kann man einen bcrypt-Hash entschlüsseln?

Nein. Bcrypt ist ein Einweg-Hash, keine Verschlüsselung. Die einzige Möglichkeit, ein Passwort aus einem bcrypt-Hash zurückzugewinnen, ist, Kandidaten zu raten und jeden zu hashen, und der Kostenfaktor macht jeden Versuch teuer. Genau dafür ist er da: Ein schwaches Passwort lässt sich trotzdem erraten, aber jeder Versuch kostet echte CPU-Zeit statt Nanosekunden.

Was ist der Unterschied zwischen $2a$, $2b$ und $2y$?

Sie kennzeichnen Überarbeitungen der Implementierung des Algorithmus. $2a$ war lange die Standardversion; $2b$ führte OpenBSD 2014 ein, um den Umgang mit Passwörtern über 255 Byte zu korrigieren; $2y$ ist die PHP-Kennung für Hashes, die erzeugt wurden, nachdem PHP 2011 einen Fehler bei der Vorzeichenerweiterung behoben hatte. Bei Hashes aus aktuellen Bibliotheken funktioniert die Prüfung gleich, und die meisten Bibliotheken akzeptieren alle drei.

Gibt es bei bcrypt eine maximale Passwortlänge?

Ja. Bcrypt verwendet nur die ersten 72 Byte des Passworts und ignoriert den Rest, und gezählt wird in UTF-8-Bytes, ein Passwort aus Buchstaben mit Akzent oder Emojis erreicht die Grenze also mit weniger Zeichen. Dieses Tool warnt, wenn du 72 Byte überschreitest. Wenn du längere Passphrasen akzeptieren musst, begrenze entweder ihre Länge oder verwende Argon2id, das keine solche Grenze hat.

Sollte ich bcrypt oder Argon2 verwenden?

Für ein neues System empfiehlt OWASP in erster Linie Argon2id, weil es speicherintensiv (memory-hard) und damit für Angriffe mit GPUs teurer ist. Bcrypt bleibt eine solide Wahl, die überall unterstützt wird, und ein System, das bereits bcrypt mit Kosten von 10 oder mehr nutzt, muss nicht dringend umgestellt werden. Am wichtigsten ist, dass du einen dieser langsamen, gesalzenen Algorithmen verwendest und nicht einfaches SHA-256 oder MD5.

Aufbau eines bcrypt-Hashs

Ein bcrypt-Hash wie $2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW ist immer 60 Zeichen lang und enthält alles, was zum Prüfen nötig ist:

• $2b$: die Version des Algorithmus.

• 12$: der Kostenfaktor. Die Schlüsselvorbereitung läuft 2^12 = 4.096-mal.

• R9h/cIPz0gi.URNNX3kh2O: 22 Zeichen, die das zufällige 128-Bit-Salt kodieren.

• PST9/PgBkqquzi.Ss7KIUgO2t0jWMUW: 31 Zeichen, die 184 Bit des Ergebnisses kodieren.

Die Kodierung verwendet das eigene Base64-Alphabet von bcrypt (./A–Z a–z 0–9), das nicht dem Standard-Base64-Alphabet entspricht; die Teile lassen sich daher nicht mit einem gewöhnlichen Base64-Decoder dekodieren.

Warum schnelle Hashes für Passwörter falsch sind

Allzweck-Hashes wie SHA-256 sind auf Geschwindigkeit ausgelegt, und eine moderne GPU berechnet Milliarden davon pro Sekunde. Gelangt eine Datenbank mit SHA-256-Passwort-Hashes nach außen, sind alle gängigen Passwörter und die meisten kurzen innerhalb von Stunden geknackt. Ein Salt verhindert vorberechnete Tabellen, verlangsamt das Raten aber nicht.

Bcrypt behebt das, indem jeder Hash bewusst teuer und einstellbar ist. Bei Kosten 12 dauert ein Hash auf einem typischen Serverkern in der Größenordnung einer Viertelsekunde, etwa eine Million Mal länger als ein einzelnes SHA-256 auf demselben Kern, und das Speicherzugriffsmuster von bcrypt sorgt zudem dafür, dass es auf GPUs schlecht läuft. Wird die Hardware schneller, erhöhst du die Kosten; bestehende Hashes lassen sich beim nächsten Login des jeweiligen Nutzers aufrüsten.

Hashing ist nur eine Schutzschicht. Begrenze Login-Versuche, prüfe neue Passwörter gegen Listen geleakter Passwörter, wie es NIST SP 800-63B empfiehlt, und biete Zwei-Faktor-Authentifizierung an, damit ein erratenes Passwort allein nicht ausreicht.

Ähnliche kostenlose Tools

  • Passwort-Generator — Erzeuge ein sicheres Zufallspasswort, eine einprägsame Passphrase oder eine PIN. Läuft komplett in deinem Browser, nichts wird gesendet oder gespeichert.
  • Hash-Generator — Hashe Text oder Dateien mit MD5, SHA-1, SHA-256, SHA-384, SHA-512 und CRC32, prüfe eine Prüfsumme oder berechne einen HMAC. Dateien verlassen nie dein Gerät.
  • TOTP-Generator — Mach aus einem Base32-Secret live 2FA-Codes mit Countdown, baue einen otpauth://-QR-Code für Authenticator-Apps oder lies eine bestehende URI aus.
  • JWT-Decoder — Dekodiere Header und Payload eines JWT, lies das Ablaufdatum in Klartext, prüfe HS-, RS-, PS- und ES-Signaturen oder signiere ein neues Token. Nichts verlässt deinen Browser.