In dit artikel
Wat is bcrypt?
bcrypt is een adaptieve wachtwoordhashfunctie ontworpen in 1999. Gebaseerd op het Blowfish-cijfer, bevat bcrypt een salt ter bescherming tegen rainbow table-aanvallen en een configureerbare kostenfactor die bepaalt hoe rekenintensief de hash is.
In tegenstelling tot snelle hashfuncties zoals MD5 of SHA-256 is bcrypt specifiek ontworpen voor wachtwoordopslag. De adaptieve aard betekent dat de kostenfactor in de loop der tijd kan worden verhoogd.
Hoe bcrypt werkt
Een bcrypt-hash bevat alle informatie die nodig is om een wachtwoord te verifieren in een enkele string.
- $2b$ — het algoritme-identificatienummer voor bcrypt versie 2b
- 10$ — de kostenfactor (2^10 = 1024 rondes van de sleutelafleidingsfunctie)
- 22 tekens Base64-gecodeerde salt (128 bits willekeurigheid)
- 31 tekens Base64-gecodeerde hash-uitvoer
Probeer gratis — geen aanmelding vereist
bcrypt-hash genereren →De juiste kostenfactor kiezen
De kostenfactor bepaalt hoeveel iteraties bcrypt intern uitvoert. Elke verhoging verdubbelt de rekentijd.
Het doel is hashing langzaam genoeg te maken om brute-force aanvallen af te schrikken, maar snel genoeg voor een goede gebruikerservaring.
- Kosten 10 — hasht in circa 100ms; goede basis voor de meeste webapplicaties
- Kosten 12 — hasht in circa 300-400ms; aanbevolen voor hoge beveiliging
- Kosten 14+ — hasht in 1 seconde of meer; over het algemeen te langzaam voor interactieve login
bcrypt vs andere hashalgoritmen
Niet alle hashalgoritmen zijn geschikt voor wachtwoordopslag. Snelle functies kunnen miljarden hashes per seconde berekenen op moderne GPU's.
- MD5/SHA-256 — ontworpen voor snelheid; nooit gebruiken voor wachtwoorden
- bcrypt — CPU-intensief, beproefd sinds 1999, breed ondersteund; de standaard aanbeveling
- Argon2 — winnaar van de Password Hashing Competition in 2015; geheugen-intensief; aanbevolen voor nieuwe projecten
Veelvoorkomende toepassingen
bcrypt wordt gebruikt waar wachtwoorden veilig moeten worden opgeslagen.
- Gebruikersregistratie — hash het wachtwoord met bcrypt voordat het in de database wordt opgeslagen
- Loginverificatie — hash het ingediende wachtwoord en vergelijk met de opgeslagen hash
- Wachtwoordmigratie — bij upgrade van MD5/SHA naar bcrypt, rehash wachtwoorden bij de volgende succesvolle login
Veelgestelde vragen
Kan ik de kostenfactor wijzigen zonder wachtwoorden te resetten?
Ja. Bij elke succesvolle login controleert u of de opgeslagen hash een oude kostenfactor gebruikt. Zo ja, rehash het wachtwoord met de nieuwe factor. Dit heet opportunistic rehashing.
Hoe verifieer ik een wachtwoord tegen een bcrypt-hash?
De bcrypt-hashstring bevat de versie, kostenfactor en salt. De verificatiefunctie extraheert deze, hasht het kandidaatwachtwoord met dezelfde parameters en vergelijkt in constante tijd.
Moet ik bcrypt of Argon2 gebruiken?
Beide zijn uitstekende keuzes. bcrypt is beproefd over 25 jaar. Argon2 is nieuwer en geheugen-intensief. Voor nieuwe projecten is Argon2id aanbevolen. bcrypt blijft perfect veilig met kostenfactor 10 of hoger.