bcrypt-Hash-Generator & -Verifizierer
Passwörter mit dem Industriestandard bcrypt hashen und ein Klartext-Passwort gegen jeden bcrypt-Hash prüfen. Anpassbarer Cost-Faktor.
Was ist bcrypt?
bcrypt ist eine Passwort-Hash-Funktion, die 1999 von Niels Provos und David Mazières entworfen wurde. Sie baut auf der Blowfish-Chiffre auf und ist bewusst langsam: Ein konfigurierbarer Kostenfaktor bestimmt, wie viele Schlüssel-Setup-Runden vor der Hash-Erzeugung durchlaufen werden, sodass Verteidiger die Kosten erhöhen können, wenn die Hardware schneller wird. Jeder Hash enthält außerdem einen 128-Bit-Zufalls-Salt; das gleiche Passwort zweimal gehasht ergibt also zwei unterschiedliche Ausgaben, und vorab berechnete Rainbow Tables sind nutzlos. Die Ausgabe sieht aus wie $2b$10$…, wobei 2b die Algorithmus-Version ist, 10 der Kostenfaktor und der Rest Salt und Hash. bcrypt ist 2026 weiterhin das Arbeitspferd zur Passwortspeicherung: einfacher zu nutzen als Argon2, mehr in der Praxis erprobt als scrypt und in jeder gängigen Sprache verfügbar.
So nutzen Sie es
Zum Hashen tippst du das Passwort, wählst einen Kostenfaktor und klickst auf Hash erzeugen. Die Ausgabe wandert direkt in deine Datenbank. Zum Verifizieren fügst du den Hash aus der Datenbank ein und gibst das zu prüfende Passwort ein, dann klickst du auf Verifizieren. Bcrypt bettet den Kostenfaktor in den Hash ein, sodass du ihn beim Verifizieren nicht erneut wählst – die Bibliothek liest ihn aus dem String aus.
Den Kostenfaktor wählen
Jede Kostenstufe verdoppelt die Zeit. Wähle den höchsten Kostenfaktor, der die Logins auf deiner Hardware unter ca. 250 ms hält. Für Logins mit hohem Aufkommen auf Standardservern ist 10 (≈60 ms) das moderne Minimum; 12 (≈250 ms) ist eine komfortable Wahl für sensible Konten; 13–15 ist für besonders schützenswerte Zugangsdaten gerechtfertigt, aber du musst die Latenz messen. Erhöhe den Kostenfaktor, wenn du die Datenbank aktualisierst – beim nächsten Login neu hashen.
Kostenfaktor-Referenz (moderne CPU, ein Thread)
| Kosten | Iterationen | Ungefähre Zeit |
|---|---|---|
| 4 | 16 | ~1 ms |
| 8 | 256 | ~15 ms |
| 10 (default) | 1,024 | ~60 ms |
| 12 | 4,096 | ~250 ms |
| 13 | 8,192 | ~500 ms |
| 14 | 16,384 | ~1 s |
| 15 | 32,768 | ~2 s |