Wat het doet
bcrypt is een wachtwoordhashfunctie die bewust traag is. Anders dan MD5 of SHA-256, die miljarden keren per seconde te berekenen zijn, heeft bcrypt instelbare kosten die elke gok duur maken voor een aanvaller die je database steelt. Naast Argon2 en scrypt is het nog steeds een van de meest gebruikte manieren om wachtwoorden op te slaan.
Deze tool doet twee dingen:
- Hashen: een wachtwoord omzetten in een bcrypt-hash met de gekozen kosten en het versievoorvoegsel.
- Controleren: nagaan of een wachtwoord bij een bestaande bcrypt-hash past, bijvoorbeeld uit je database of het seedbestand van een framework.
Zo gebruik je het
- Typ een Wachtwoord of klik op Voorbeeld.
- Kies in de modus Hashen de Kosten en de Versie. De hash verschijnt direct; klik op Nieuwe salt voor een andere.
- Plak in de modus Controleren de Te controleren bcrypt-hash. Het resultaat laat zien of het wachtwoord past.
Een bcrypt-hash lezen
Een hash zoals $2b$10$./3kakECWB0QfIgYzIqciuv449HNnwGbgExtJQQwQ1MofonthOdoK bestaat uit vier delen: de versie 2b, de kosten 10 (2¹⁰ rondes sleutelvoorbereiding), een salt van 22 tekens en een checksum van 31 tekens. Alles wat een server later nodig heeft om een wachtwoord te controleren zit in deze ene string, dus je slaat alleen de hash op.
Grenzen om te kennen
bcrypt leest alleen de eerste 72 bytes van een wachtwoord. Langere wachtwoorden, of wachtwoorden met veel niet-ASCII-tekens (elk 2–4 bytes in UTF-8), worden stilzwijgend afgekapt. De tool waarschuwt als dat gebeurt. Moet je zeer lange wachtzinnen accepteren, hash ze dan eerst of overweeg Argon2id.
Veelgestelde vragen
› Waarom krijg ik voor hetzelfde wachtwoord steeds een andere hash?
Elke hash gebruikt een nieuwe willekeurige salt van 16 bytes, die in de hash zelf wordt opgeslagen. Dat is bewust, zodat gelijke wachtwoorden geen gelijke hashes geven. Gebruik Controleren om een wachtwoord te testen in plaats van hashstrings te vergelijken.
› Welke kosten moet ik kiezen?
Kies de hoogste kosten die je server per login aankan, tegenwoordig meestal 10 tot 12. Elke stap verdubbelt het werk. Meet op je productiehardware; 100–300 ms per hash is een gangbaar doel.
› Wat is het verschil tussen $2a$, $2b$ en $2y$?
Het is hetzelfde algoritme. $2b$ is het huidige voorvoegsel van OpenBSD, $2y$ schrijft PHP’s password_hash en $2a$ is het oudere. De meeste bibliotheken accepteren alle drie, dus kies wat je systeem verwacht.
› Wordt mijn wachtwoord ergens naartoe gestuurd?
Nee. Hashen en controleren gebeuren in je browser. Het wachtwoord en de gecontroleerde hash staan alleen in het geheugen van deze pagina; ze worden niet opgeslagen en niet in deellinks opgenomen.