Bcrypt-wachtwoord Generator
Genereer direct veilige bcrypt-wachtwoordhashes in uw browser. Kies uw kostenfactor en hash-wachtwoorden aan de clientzijde – volledig privé en gratis.
Genereer direct veilige bcrypt-wachtwoordhashes in uw browser. Kies uw kostenfactor en hash-wachtwoorden aan de clientzijde – volledig privé en gratis.
bcrypt is een functie voor het hashen van wachtwoorden, ontworpen door Niels Provos en David Mazières in 1999, afgeleid van het Blowfish-cijfer. In tegenstelling tot hashfuncties voor algemeen gebruik, zoals SHA-256, is bcrypt opzettelijk traag – en configureerbaar traag, via een kostenparameter – wat precies de eigenschap is die een wachtwoordhasher nodig heeft. Dankzij een snellere hashfunctie kunnen aanvallers meer kandidaten per seconde bruut forceren; een langzamere beperkt hen.
bcrypt integreert ook automatisch zout per wachtwoord, waardoor een hele klasse aanvallen op basis van vooraf berekende regenboogtabellen wordt geëlimineerd. De salt- en cost-parameters worden opgeslagen als onderdeel van de bcrypt-uitvoer, dus voor verificatie zijn alleen de opgeslagen hash en het kandidaat-wachtwoord nodig – geen afzonderlijk salt-beheer. Deze combinatie van traagheid, zout en op zichzelf staand formaat maakte bcrypt twintig jaar lang de standaardwachtwoord-hash en vandaag de dag een sterke keuze.
Er bestaan moderne alternatieven. Argon2 heeft de Wachtwoord Hashing Competitie 2015 gewonnen en biedt naast tijdhardheid ook geheugenhardheid. scrypt biedt vergelijkbare eigenschappen. Voor nieuwe ontwerpen is Argon2id de aanbevolen keuze. bcrypt blijft acceptabel en wordt op grote schaal ingezet, vooral in omgevingen waar Argon2 niet beschikbaar is.
Het opslaan van wachtwoorden als leesbare tekst is een wanpraktijk. Het opslaan ervan met een snelle hash zoals SHA-256 is nauwelijks beter: moderne GPU's berekenen miljarden SHA-256-hashes per seconde, waardoor aanvallen met brute kracht tegen elk gangbaar wachtwoord binnen enkele uren mogelijk zijn. De opzettelijke traagheid van bcrypt verandert de economie: bij een kostenfactor van 12 besteedt een aanvaller grofweg 250 ms per kandidaat-wachtwoord, waardoor brute kracht onpraktisch wordt voor elk niet-triviaal wachtwoord.
bcrypt's automatische zout per wachtwoord verslaat ook regenboogtafelaanvallen. Twee gebruikers met hetzelfde wachtwoord produceren verschillende bcrypt-hashes omdat hun salts verschillen. Door de wachtwoorddatabase te compromitteren, kan een aanvaller niet snel algemene wachtwoorden of vooraf berekende tabelhits identificeren.
Typ een wachtwoord, kies de kosten en ontvang de hash.
bcrypt gebruikt de sleutelconfiguratiefase van een aangepast Blowfish-cijfer, dat 2^ keer wordt herhaald. De kostenfactor is logaritmisch: kosten 12 zijn twee keer zo langzaam als kosten 11, vier keer zo langzaam als kosten 10. Door deze logaritmische schaalvergroting kunnen beheerders de kosten in de loop van de tijd verhogen naarmate de hardware verbetert, zonder het systeem opnieuw te hoeven ontwerpen.
Het uitvoerformaat is $version$cost$saltAndHash waarbij saltAndHash base64-gecodeerd is met een aangepast alfabet. De versie kost doorgaans $2b$ (de moderne variant waarbij de omhullende bug is verholpen) of $2y$ (PHP-specifiek, equivalent). Het zout is 16 bytes; de hash is 24 bytes; samen coderen ze voor 53 tekens van custom-base64.
De maximale invoerlengte is 72 bytes (limiet voor de lengte van de Blowfish-sleutel). Langere wachtwoorden worden stilletjes afgekapt, wat een al lang bestaande bcrypt-gril is. De beste praktijk is om de wachtwoordlengte te beperken tot 72 bytes of om vooraf te hashen met SHA-256 om de lengte vóór bcrypt te normaliseren.