Bcrypt Generator – Passwort-Hashes online erstellen
Bcrypt Generator
Hashing runs locally in your browser. Your password is never uploaded or stored.
Was ist
Ein Passwort-Hash ist eine Einwegfunktion, die ein Passwort in eine Zeichenkette fester Länge umwandelt, aus der sich das ursprüngliche Passwort nicht zurückrechnen lässt, gegen die dasselbe Passwort aber später geprüft werden kann, indem man es erneut hasht und vergleicht. bcrypt ist der konkrete Algorithmus, den dieses Werkzeug implementiert, entwickelt von Niels Provos und David Mazieres und 1999 als Passwort-Hashing-Verfahren für OpenBSD veröffentlicht. Er gehört zur Familie der adaptiven, also absichtlich teuren Schlüsselableitungsfunktionen und baut auf dem Blockchiffre Blowfish auf.
Strukturell erzeugt bcrypt ein zufälliges 128-Bit-Salz, mischt es mit dem Passwort und führt dann das teure EksBlowfish-Schlüsselschema eine einstellbare Anzahl von Malen aus, wobei diese Anzahl der Logarithmus zur Basis 2 der Arbeitskosten ist. Weil dieses Salz in der Ausgabe enthalten ist, sind zwei bcrypt-Hashes desselben Passworts unterschiedliche Zeichenketten, was verhindert, dass ein Angreifer Konten mit gemeinsamem Passwort erkennt. Die Ausgabe verwendet das modulare Krypt-Format und beginnt mit einem Versionspräfix, gefolgt von den Kosten, dann einer 22 Zeichen langen Base64-Kodierung des Salzes und schließlich einer 31 Zeichen langen Kodierung des resultierenden Hashes, alles durch Dollarzeichen getrennt.
Zwei Folgerungen sind in der Praxis wichtig. Erstens ignoriert bcrypt Eingaben jenseits von 72 Bytes stillschweigend, weshalb jedes längere Passwort vor der Anwendung von bcrypt vorab gehasht werden sollte, sonst wären zwei lange Passwörter mit gemeinsamem Präfix austauschbar. Zweitens ist der Algorithmus konstruktionsbedingt einseitig: Für die Prüfung wird das Klartextpasswort benötigt, und genau deshalb darf bcrypt nie für Daten verwendet werden, die Sie später wieder auslesen müssen, etwa eine gespeicherte Kartennummer.
Wie zu verwenden
- Öffnen Sie den Bcrypt Generator in Ihrem Browser. Das Hashing erfolgt lokal, sodass Ihr Passwort nirgendwohin hochgeladen wird.
- Geben Sie das Passwort, das Sie hashen möchten, in das Eingabefeld ein. Eine lange Passphrase ist sinnvoller, denn Länge trägt weit mehr zur Widerstandsfähigkeit bei als der Austausch von Zeichen.
- Wählen Sie einen Work Factor von 4 bis 15, oder lassen Sie den empfohlenen Standard stehen, wenn Sie unsicher sind. Höhere Kosten dauern proportional länger und sind schwerer anzugreifen.
- Prüfen Sie die neben den Kosten angezeigte Zeit, um zu bestätigen, dass sie zu Ihrem Ziel passt, typischerweise zwischen 150 und 400 Millisekunden auf Produktionshardware.
- Klicken Sie auf Erzeugen, um den Hash zu erzeugen, und kopieren Sie dann die entstehende Zeichenkette einschließlich Versionspräfix, Kosten und Salt in Ihren Passwortspeicher.
- Nutzen Sie den Prüfbereich, um ein Passwort gegen einen vorhandenen Hash zu testen, wenn Sie eine Integration testen oder gespeicherte Zugangsdaten migrieren.
- Speichern Sie den vollständigen Hash-String und nicht nur dessen Ende, denn bcrypt benötigt Version, Kosten und Salt-Präfix, um später verifizieren zu können.
Beispiele
Eingabe: Passwort: correct-horse-battery-staple, Kosten 10
Prozess:
128-Bit-Zufallssalt, 2^10 EksBlowfish-Runden, base64-kodiertErgebnis: 60 Zeichen langer Hash beginnend mit $2b$10$ — die Prüfung erfordert denselben Klartext
Eingabe: Dasselbe Passwort zweimal mit denselben Kosten gehasht
Prozess:
Pro Aufruf wird ein neues zufälliges Salt erzeugtErgebnis: Zwei völlig verschiedene Hash-Zeichenketten für identische Eingabe
Eingabe: Kostenvergleich auf typischer Serverhardware
Prozess:
Kosten 10 laufen 2^10 Runden, Kosten 12 laufen 2^12, Kosten 14 laufen 2^14Ergebnis: Jede Stufe erhöht die Arbeit etwa auf das Vierfache, Kosten 14 dauern also rund 16-mal so lange wie Kosten 10
Verwandte Suchen
Leute suchen auch nach: bcrypt generator, bcrypt hash, bcrypt online, passwort hash erstellen, passwort hashen, bcrypt kostenfaktor.
bcrypt generatorbcrypt hashbcrypt onlinepasswort hash erstellenpasswort hashenbcrypt kostenfaktorbcrypt work factorbcrypt saltbcrypt rundenbcrypt hash prüfenbcrypt verifizierenbcrypt vs sha256argon2 alternativesichere passwortspeicherungeinweg hashpasswort hash onlinebcrypt nodebcrypt pythonbcrypt kosten 1272 bytes bcrypt limit
Häufig gestellte Fragen
Welchen Kostenfaktor sollte ich für bcrypt verwenden?
Für die meisten Produktionssysteme ist ein Work Factor von 12 ein solider Standardwert, der auf typischer Serverhardware etwa 250 bis 400 Millisekunden pro Hash liefert, während Kosten von 10 inzwischen oft zu schnell sind, um einem Angreifer mit modernen GPUs standzuhalten. Entscheidend ist, dass Sie einen Wert wählen, der Ihren eigenen Anmeldefluss unauffällig erscheinen lässt, denn das Hashing findet während der Authentifizierung statt und alles spürbar Langsame ist ein Bedienungsproblem, das Menschen zu Abkürzungen bei der erneuten Authentifizierung drängt. Wenn Ihre Server ungewöhnlich leistungsfähig sind, messen Sie bei Kosten 12 und steigen Sie auf 13 oder 14, bis ein einzelner Hash ein paar Hundert Millisekunden braucht. Wählen Sie Kosten niemals, indem Sie die Zahl eines anderen Projekts übernehmen, denn dieser Wert bedeutet nur im Verhältnis zur rechnenden Hardware etwas, und behandeln Sie jede gespeicherte Kostenangabe als Wert, den Sie mit besserer Hardware erneut messen und erhöhen sollten.
Warum sind zwei Hashes desselben Passworts unterschiedlich?
Weil bcrypt für jeden einzelnen Hash ein frisches zufälliges 128-Bit-Salz erzeugt. Dieses Salz ist kein Geheimnis, es wird lediglich in der Ausgabe festgehalten, damit der Prüfschritt die ursprüngliche Rechnung reproduzieren kann; seine Zufälligkeit sorgt aber dafür, dass identische Passwörter über verschiedene Konten hinweg völlig unzusammenhängende Hash-Zeichenketten ergeben. Das vereitelt eine große Klasse von Vorabberechnungsangriffen einschließlich Rainbow Tables, bei denen ein Angreifer jedes wahrscheinliche Passwort einmal im Voraus hasht und dann Treffer nachschlägt. Es verhindert auch ein subtileres Leck, bei dem ein Angreifer im Besitz Ihrer Benutzertabelle sonst sofort durch Vergleich der Hash-Zeichenketten sähe, welche Konten ein Passwort teilen. Praktisch heißt das, dass Sie eine Wiederverwendung von Passwörtern nicht durch Vergleich gespeicherter bcrypt-Hashes erkennen können, sondern Kandidatenpasswörter prüfen müssen, weshalb das Erkennen von Passwortwiederverwendung ein bewusstes Durchprobieren erfordert.
Ist bcrypt oder SHA-256 besser, um Passwörter zu speichern?
Verwenden Sie bcrypt, und der Grund ist der Kostenfaktor, nicht irgendeine kluge Mathematik. Eine einzelne Runde SHA-256 ist darauf ausgelegt, extrem schnell zu sein, und genau das wollen Sie für die Passwortspeicherung nicht, denn eine GPU kann Milliarden davon pro Sekunde berechnen, und ein Angreifer, der eine geleakte Hash-Tabelle testet, bekommt enorm viele kostenlose Versuche. bcrypt ist absichtlich langsam und seine Kosten pro Hash sind einstellbar, sodass Sie sie im Laufe der Zeit mit besserer Hardware erhöhen können, ohne das gespeicherte Format zu ändern. Argon2id wird heute, wo verfügbar, oft bevorzugt und ist für neue Systeme generell die stärkere Empfehlung, wobei bcrypt nach wie vor völlig in Ordnung und weit verbreiteter unterstützt ist. Was Sie auf keinen Fall tun dürfen, ist Passwörter als einfaches SHA-256 oder als ungesalzenen Hash irgendeiner Art zu speichern, egal welchen Algorithmus Sie wählen.
Kann ein bcrypt-Hash in das ursprüngliche Passwort zurückverwandelt werden?
Nein, und genau das ist der gesamte Sinn der Wahl eines Passwort-Hashes gegenüber Verschlüsselung. bcrypt ist eine Einwegfunktion, es gibt also keinen Schlüssel, keine Einstellung und kein kostenpflichtiges Werkzeug, das einen Hash zurück in das Passwort verwandelt. Der einzige praktische Weg, ein Passwort aus einem bcrypt-Hash zu gewinnen, besteht darin, Passwortkandidaten zu erraten, jeden mit denselben Kosten und demselben Salt zu hasht und zu vergleichen, und genau diesen Angriff soll bcrypt langsam machen. Das erklärt auch eine Einschränkung, die Menschen überrascht: Sie können bcrypt nicht für Daten verwenden, die Sie später wieder auslesen müssen, etwa gespeicherte Kartennummern, Kundenschlüssel zur Verschlüsselung oder eine umkehrbare Passwortwiederherstellung, weil das System den Originalwert nicht zurückerhalten könnte. Dafür braucht es echte Verschlüsselung mit einem verwalteten Schlüssel, keinen Einweg-Hash.
Was passiert, wenn ich beim Speichern eines Hashes Kosten und Salt vergesse?
Dann kann der Hash nie verifiziert werden und das Konto ist unwiederbringlich, denn bcrypt benötigt alle vier Teile der Zeichenkette, um die Rechnung zu reproduzieren. Ein vollständiger bcrypt-Hash besteht aus Versionspräfix, Kosten, Salt und resultierendem Hash, verbunden durch Dollarzeichen, und ist immer 60 Zeichen lang. Bibliotheken wie bcryptjs und das Python-Paket bcrypt liefern diese gesamte Zeichenkette aus einem einzigen generate-Aufruf, deshalb sollte Ihre Datenbankspalte den vollständigen Wert speichern und nicht einen abgeschnittenen Teil. Speichert man nur das letzte Segment oder nur den Teil nach dem Salt, bricht die Anmeldung für jeden Benutzer stillschweigend, und keine noch so gründliche Fehlersuche am Passwort hilft. Eine Längenprüfung von 60 Zeichen ist ein sinnvoller Plausibilitätstest für jede Spalte, die bcrypt-Hashes aufnehmen soll.
Hat bcrypt eine maximale Passwortlänge?
bcrypt berücksichtigt nur die ersten 72 Bytes des Passworts und ignoriert alles darüber hinaus, ein historisches Artefakt seines Blowfish-Schlüsselschemas und keine bewusste Sicherheitsgrenze. Praktisch bedeutet das, dass zwei Passwörter mit mehr als 72 Bytes, die ein gemeinsames Präfix haben, gegeneinander authentifizieren, eine 100 Zeichen lange Passphrase, deren erste 72 Bytes mit einer anderen übereinstimmen, wird also ebenfalls als dasselbe Passwort behandelt. Das ist ein reales Risiko bei langen Passphrasen, also genau bei der Art von Passwort, die Sie fördern sollten, und lange Werte wie vollständige Sätze können die Grenze problemlos überschreiten. Die übliche Abhilfe ist, das Passwort vorher mit SHA-256 zu hasht und base64 zu kodieren und dieses feste Längen-Ergebnis an bcrypt zu übergeben. Wenn Ihre Sprachbibliothek das automatisch erledigt, verwenden Sie bevorzugt diese Implementierung, andernfalls prüfen Sie das Verhalten, bevor Sie sich auf sehr lange Passphrasen verlassen.