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.

Tool laden…

PBKDF2- en HKDF-sleutelafleidingRek 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

  1. Kies PBKDF2 of HKDF met de schakelaar bovenaan, passend bij de functie die je code of testvector gebruikt.
  2. Typ of plak je wachtwoord (PBKDF2) of geheim met hoge entropie (HKDF) in het veld Geheim en voer daarna een salt in.
  3. Stel voor PBKDF2 het aantal iteraties in; stel voor HKDF het optionele info-label in dat de sleutel aan een context bindt.
  4. Kies de hash (SHA-256, SHA-384, SHA-512 of SHA-1) en de uitvoerlengte in bits.
  5. 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