PK Systems PK Systems
Encoders & decoders

bcrypt hash-generator & -verifier

Hash wachtwoorden met de industriestandaard bcrypt en verifieer een gewoon wachtwoord tegen elke bcrypt-hash. Aanpasbare cost.

bcrypt hash-generator & -verifier

Kosten zijn logaritmisch: elke stap verdubbelt het werk. 10 is een veilige moderne standaard; 12 voor gevoelige systemen.

bcrypt-hash


        
    

Wat is bcrypt?

bcrypt is een wachtwoordhashfunctie ontworpen door Niels Provos en David Mazières in 1999. Hij bouwt voort op het Blowfish-cijfer en is bewust traag: een instelbare kostenfactor bepaalt hoeveel key-setup-rondes worden uitgevoerd voordat de hash wordt geproduceerd, zodat verdedigers de kosten kunnen blijven verhogen naarmate hardware sneller wordt. Elke hash bevat ook een willekeurige salt van 128 bits, wat betekent dat hetzelfde wachtwoord twee keer hashen twee verschillende uitkomsten oplevert en vooraf berekende rainbow tables nutteloos zijn. De uitvoer ziet eruit als $2b$10$… waarbij 2b de algoritmeversie is, 10 de kostenfactor en de rest de salt en hash. bcrypt blijft in 2026 het werkpaard voor wachtwoordopslag: eenvoudiger te gebruiken dan Argon2, beter beproefd dan scrypt, en ondersteund in elke grote taal.

Hoe gebruik je het

Om te hashen typ je het wachtwoord, kies je een kostenfactor en klik je op Hash genereren. De uitvoer gaat rechtstreeks naar je database. Om te verifiëren plak je de hash uit de database, typ je het kandidaat-wachtwoord en klik je op Verifiëren. Bcrypt sluit de kostenfactor in de hash zelf in, dus bij verifiëren kies je hem niet opnieuw — de bibliotheek leest hem uit de string.

Een cost-factor kiezen

Elke kostenstap verdubbelt de tijd. Kies de hoogste kostenfactor waarbij logins onder ~250 ms blijven op jouw hardware. Voor drukbezochte logins op standaardservers is 10 (≈60 ms) het moderne minimum; 12 (≈250 ms) is een prettige keuze voor gevoelige accounts; 13–15 is gerechtvaardigd voor kroonjuwelen-credentials, maar je moet de latency meten. Verhoog de kosten wanneer je de database upgradet — herhash bij de volgende login.

Cost factor-referentie (moderne CPU, single thread)

Kosten Iteraties Tijd (bij benadering)
416~1 ms
8256~15 ms
10 (default)1,024~60 ms
124,096~250 ms
138,192~500 ms
1416,384~1 s
1532,768~2 s

Veelgestelde vragen

Is bcrypt in 2026 nog veilig?
Ja. bcrypt met kosten ≥10 blijft een prima wachtwoordhash. Argon2id is voor nieuwe projecten de eerste keuze van OWASP, maar bcrypt is prima, goed ondersteund en eenvoudig te auditen.
Waar is de salt?
De salt is in de hash zelf gecodeerd, tussen de kostenfactor en de digest. De bibliotheek extraheert hem tijdens verificatie — je slaat de salt nooit apart op.
Wat is de maximale wachtwoordlengte?
De meeste bcrypt-implementaties kappen het wachtwoord stilletjes af op 72 bytes. Pre-hash lange wachtwoorden (bijv. SHA-256) en base64-codeer het resultaat, of gebruik Argon2 als je willekeurig lange wachtwoorden moet ondersteunen.
Waarom is een run met hoge kosten traag?
Met opzet. Het hele punt van bcrypt is brute-force-aanvallen duur maken. Om de pagina responsief te houden draait deze tool kosten ≥12 in een Web Worker zodat je browser bruikbaar blijft.
Verschillen $2a$, $2b$ en $2y$?
$2a$ is het origineel (met een bekende PHP-tijdperkbug voor 8-bits tekens), $2b$ is de gecorrigeerde versie die tegenwoordig overal wordt gebruikt, en $2y$ is een PHP-specifieke tag die vastzit aan het bugvrije gedrag. De verifier accepteert alle drie.
Stuurt de pagina mijn wachtwoord ergens heen?
Nee. Zowel hashen als verifiëren draait volledig op je apparaat. Je wachtwoord, hash en verificatieresultaat verlaten de pagina nooit, gaan niet naar onze servers, en worden niet opgeslagen, geïndexeerd, gelogd of gedeeld.