PBKDF2- en HKDF-sleutelafleiding
Leid een sleutel af uit een wachtwoord of geheim met PBKDF2 of HKDF, kies de salt, het aantal iteraties of het info-label, de hash en de uitvoerlengte, en lees het resultaat als hex of base64 – volledig in je browser.
PBKDF2- en HKDF-sleutelafleiding — Rek een wachtwoord uit tot een PBKDF2-sleutel, of breid een geheim met hoge entropie uit tot benoemde subsleutels met HKDF, zonder dat er iets je apparaat verlaat. Kies de hash, stel de salt en het aantal iteraties (PBKDF2) of het info-label (HKDF) in, geef aan hoeveel bits uitvoer je nodig hebt en kopieer de afgeleide sleutel als hex of base64. Elke byte wordt lokaal berekend met de native Web Crypto API (crypto.subtle.deriveBits), dus je wachtwoord en geheim raken nooit een server.
Wat is PBKDF2- en HKDF-sleutelafleiding?
PBKDF2- en HKDF-sleutelafleiding is een gratis tool in de browser die de twee sleutelafleidingsfuncties uitvoert die ontwikkelaars het vaakst gebruiken. PBKDF2 (Password-Based Key Derivation Function 2) vertraagt brute force bewust door een HMAC vele duizenden keren te herhalen, en zet een menselijk wachtwoord plus een salt om in een sleutel met vaste lengte. HKDF (HMAC-based Key Derivation Function) neemt een geheim dat al genoeg entropie heeft en breidt het via een info-label uit tot een of meer aan een context gebonden subsleutels, ideaal om aparte versleutelings- en authenticatiesleutels uit één mastergeheim af te leiden. Backend-engineers, securityreviewers en iedereen die login- of versleutelingscode schrijft, gebruiken het om testvectoren te controleren, de afleiding van een server na te bootsen of sleutels te genereren voor een eenmalige taak. Gebruik de PBKDF2/HKDF-schakelaar om van algoritme te wisselen, kies SHA-256, SHA-384, SHA-512 of SHA-1, stel de uitvoerlengte in bits in en lees het resultaat als hex of base64.
PBKDF2- en HKDF-sleutelafleiding gebruiken
- Kies PBKDF2 of HKDF met de schakelaar bovenaan, passend bij de functie die je code of testvector gebruikt.
- Typ of plak je wachtwoord (PBKDF2) of geheim met hoge entropie (HKDF) in het veld Geheim en voer daarna een salt in.
- Stel voor PBKDF2 het aantal iteraties in; stel voor HKDF het optionele info-label in dat de sleutel aan een context bindt.
- Kies de hash (SHA-256, SHA-384, SHA-512 of SHA-1) en de uitvoerlengte in bits.
- Zet de hex- / base64-schakelaar op de codering die je nodig hebt en kopieer de afgeleide sleutel met de kopieerknop.
Voorbeelden
PBKDF2 — 256-bits sleutel uit een wachtwoord
Invoer
Geheim: correct horse battery staple Salt: a1b2c3d4 Hash: SHA-256, Iteraties: 100000, Bits: 256
Uitvoer
een hexstring van 64 tekens (32 bytes) die reproduceerbaar is met hetzelfde wachtwoord, salt, hash en aantal iteraties
HKDF — aan context gebonden subsleutel uit een mastergeheim
Invoer
Geheim: 9f8e7d6c…(mastersleutel) Salt: session-2024 Info: aes-gcm-encryption Hash: SHA-256, Bits: 256
Uitvoer
een andere 256-bits sleutel dan hetzelfde geheim met Info: hmac-authentication oplevert, zodat één master onafhankelijke subsleutels produceert
Kortere uitvoer als base64
Invoer
Bits: 128, codering omgezet naar base64
Uitvoer
een base64-string van 24 tekens die de eerste 16 afgeleide bytes codeert
Veelgestelde vragen
- Wordt mijn wachtwoord of geheim ergens naartoe verzonden?
- Nee. Het Geheim, de salt en de info blijven in je browser. De sleutel wordt lokaal afgeleid met de Web Crypto API (crypto.subtle.deriveBits), en er wordt niets geüpload naar of opgeslagen op een server, dus de tool werkt offline en je invoer verlaat nooit de pagina.
- Wanneer gebruik ik PBKDF2 versus HKDF?
- Gebruik PBKDF2 om een sleutel af te leiden uit een menselijk wachtwoord met lage entropie – het aantal iteraties vertraagt brute force. Gebruik HKDF wanneer je al een geheim met hoge entropie hebt (een mastersleutel of gedeeld geheim) en het via het info-label wilt uitbreiden tot een of meer aparte subsleutels. HKDF is snel en vervangt de wachtwoordverlenging van PBKDF2 niet.
- Waarom wordt mijn uitvoerlengte afgerond?
- De deriveBits van Web Crypto werkt in hele bytes, dus de uitvoerlengte in bits wordt afgerond op het dichtstbijzijnde veelvoud van 8. De statistiek onder het resultaat toont de werkelijk geproduceerde bits en bytes.
- Welke hashes en algoritmen worden ondersteund?
- Beide algoritmen werken met SHA-256, SHA-384, SHA-512 of SHA-1, de hashes die de Web Crypto van de browser blootstelt voor PBKDF2 en HKDF. Scrypt, Argon2 en bcrypt worden niet aangeboden omdat browsers ze niet native implementeren.
- Geven dezelfde invoeren altijd dezelfde sleutel?
- Ja. Sleutelafleiding is deterministisch: hetzelfde algoritme, geheim, salt, hash, dezelfde uitvoerlengte en hetzelfde aantal iteraties (PBKDF2) of info (HKDF) leveren altijd dezelfde bytes op, en daarom kun je hiermee een sleutel reproduceren of verifiëren die je server heeft afgeleid.
Gerelateerde tools
AES-tekstversleuteling (AES-GCM + PBKDF2)
Versleutel en ontsleutel tekst met AES-256-GCM via een sleutel afgeleid van een wachtwoordzin (PBKDF2 SHA-256, willekeurige salt), volledig in je browser en zonder uploads.
Argon2- en scrypt-hash
Hash een wachtwoord met Argon2id of scrypt en verifieer een Argon2-hash tegen een wachtwoord, volledig in je browser.
Bcrypt-hashgenerator en -verificator
Genereer een bcrypt-wachtwoordhash uit platte tekst met een gekozen kostenfactor, of verifieer een wachtwoord tegen een bestaande bcrypt-hash, volledig in je browser.
BIP39-mnemonic-generator
Genereer een willekeurige BIP39-herstelzin van 12 tot 24 woorden in meerdere talen, of zet een bestaande mnemonic terug om naar de ruwe entropie, helemaal in je browser.