Generieren Sie sichere Passwort-Hashes mit dem bcrypt-Algorithmus
Features
- Sicheres Hashing: Verwendet bcrypt-Algorithmus mit adaptivem Kosten-Faktor
- Passwort-Verifikation: Verifizieren Sie Passwörter gegen bestehende Hashes
- Einstellbare Runden: Konfigurieren Sie Hash-Runden für Balance zwischen Sicherheit und Performance
- Automatische Salt-Generierung: Generiert automatisch Zufalls-Salts für jeden Hash
Usage Guide
- Schritt 1: Passwort eingeben
- Schritt 2: Runden-Anzahl auswählen (empfohlen: 10-12)
- Schritt 3: Hash generieren oder verifizieren
Technical Details
Bcrypt-Algorithmus
Bcrypt ist eine auf Blowfish basierende Passwort-Hashing-Funktion, die 1999 von Niels Provos und David Mazières entwickelt wurde. Es enthält einen Travail-Factor (Kosten)-Parameter, der die Anzahl der Iterations-Runden kontrolliert. Jede Erhöhung um 1 verdoppelt die Rechenzeit, wodurch es resistent gegen Brute-Force-Angriffe wird. Bcrypt generiert automatisch Zufalls-Salts (128-Bit) für jedes Passwort, speichert den Salt mit dem Hash und verhindert Rainbow-Tabelle-Angriffe.
Work-Factor und Performance
Der bcrypt-Travail-Factor bestimmt die Anzahl der Hash-Iterations-Runden (2^Runden). Empfohlene Einstellungen: 10 Runden (1024 Iterationen, ~100ms), 12 Runden (4096 Iterationen, ~400ms), 14 Runden (16384 Iterationen, ~1.6s). Höhere Runden erhöhen die Sicherheit, aber verlangsamen die Authentifizierung. Balance zwischen Sicherheit und Benutzer-Erfahrung ist kritisch. Als Hardware schneller wird, sollten Travail-Faktoren periodisch erhöht werden.
Sicherheits-Best-Practices
Bcrypt-Best-Practices: Verwenden Sie mindestens 10 Runden für Produktion, niemals Passwörter im Klartext speichern, Salt wird automatisch generiert und mit Hash gespeichert, verifizieren Sie Passwörter mit bcrypt.compare(), vermeiden Sie MD5/SHA1 für Passwort-Hashing, implementieren Sie Rate-Limiting für Login-Versuche, erwägen Sie bcrypt/scrypt/Argon2 für neue Projekte und aktualisieren Sie Hashing-Strategien regelmäßig gegen neue Bedrohungen.
Frequently Asked Questions
- Was ist Bcrypt und warum sollte ich es verwenden?
- Bcrypt ist eine Passwort-Hashing-Funktion, die speziell für die sichere Passwortspeicherung entwickelt wurde. Im Gegensatz zu allgemeinen Hash-Funktionen wie MD5 oder SHA-1 ist bcrypt absichtlich langsam und rechenintensiv, was Brute-Force-Angriffe unpraktisch macht. Es generiert automatisch ein zufälliges Salt für jedes Passwort und ermöglicht es Ihnen, den Kostenfaktor im Laufe der Zeit zu erhöhen, um die Sicherheit zu gewährleisten, während sich die Hardware verbessert.
- Was bedeutet die Anzahl der Runden?
- Die Runden (oder Kostenfaktor) bestimmen, wie viele Iterationen der Hashing-Prozess durchläuft. Jedes Inkrement verdoppelt die Berechnungszeit. 10 Runden dauern ~100ms, während 12 Runden ~400ms dauern. Für Produktionsumgebungen werden 10-12 Runden empfohlen, während Hochsicherheitssysteme möglicherweise 14-16 Runden verwenden. Vermeiden Sie die Verwendung von weniger als 8 Runden.
- Warum generiert dasselbe Passwort jedes Mal unterschiedliche Hashes?
- Bcrypt generiert automatisch ein zufälliges Salt für jeden Hash. Dies ist ein Kernmerkmal der Sicherheit - selbst identische Passwörter erzeugen aufgrund unterschiedlicher Salts unterschiedliche Hashes. Dies verhindert Rainbow-Tabelle-Angriffe und stellt sicher, dass Angreifer keine vorkomputierten Hash-Listen verwenden können. Das Salt ist im Hash selbst enthalten, sodass es während der Verifizierung extrahiert werden kann.
- Können bcrypt-Hashes umgekehrt werden?
- Nein, bcrypt ist eine Einweg-Hash-Funktion. Es gibt keinen mathematischen Weg, das ursprüngliche Passwort aus dem Hash wiederherzustellen. Das macht es sicher für die Passwortspeicherung. Um ein Passwort zu überprüfen, hashen Sie dasselbe Passwort erneut (unter Verwendung des gespeicherten Salts) und vergleichen das Ergebnis mit dem gespeicherten Hash. Wenn die Hashes übereinstimmen, ist das Passwort korrekt.
- Ist bcrypt sicher für den Einsatz in der Produktion?
- Ja, bcrypt ist ein Industriestandard für den Produktionseinsatz. Es wird von allen großen Programmiersprachen verwendet, einschließlich Node.js (bcrypt.js), Python (bcrypt), PHP (password_hash) und Java (jBCrypt). Es wird von OWASP, NIST und Sicherheitsexperten für die Passwortspeicherung empfohlen. Stellen Sie nur sicher, dass Sie eine angemessene Anzahl von Runden (10-12) verwenden, Hashes sicher speichern und Passwörter über HTTPS übertragen.
Related Documentation
- Wikipedia - Bcrypt - Bcrypt-Algorithmus-Erklärung
- OWASP - Passwort-Speicherung - Passwort-Hashing-Best-Practices
- npm - bcryptjs - JavaScript bcrypt-Bibliothek