HKDF Generator

Derive keys from existing key material with an explicit hash, salt, context and output length.

Security & Cryptography
Preparing your workspace…

Input

Preparing your workspace…

Output
Your result will appear here.

How to use

  1. Enter input key material, salt and optional context bytes.
  2. Choose the hash and output length, then select Generate.
  3. Copy or download the derived bytes as Hex or Base64.

HKDF Generator

Derive keys from existing key material with an explicit hash, salt, context and output length.

The result is raw key material, not encrypted text or a self-contained password record. Preserve the parameters you need to reproduce it. Input secrets are not included in the downloaded result.

Choose the bytes and parameters

UTF-8 preserves the exact text, including spaces and line endings. Hex and Base64 represent raw bytes. Encoding changes the interpretation of your input, not just its appearance.

Salt and info may be empty. Info separates application contexts; using different context bytes produces a different derived key.

RFC test vector
Input
IKM (Hex): 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
Salt (Hex): 000102030405060708090a0b0c
Info (Hex): f0f1f2f3f4f5f6f7f8f9
Hash: SHA-256
Length: 42 bytes
Derived key (Hex)
3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865

RFC 5869 test case 1, including the exact 42-byte output.

Derivation and processing limits

HKDF follows RFC 5869 extract-and-expand. It is designed for existing key material and does not slow down password guesses. Use a password-specific KDF when starting from a human password.

The tool accepts up to 64 KiB of input and up to 1,024 bytes each for salt and context. Output is 1–256 bytes. A Worker enforces the processing timeout; no partial key is returned after cancellation.

Compare and reuse the derived key

Match all parameters with the other implementation. Hex and Base64 encode the same derived bytes, and changing output format does not rerun derivation. Treat the derived key as a secret.

Processing limits

Input: 1 MiB; Secret key: 64 KiB; File: 1 GiB; Passwords: 4–128 (Length), 1–100 (Count); bcrypt: 1–72 UTF-8 bytes · cost 4–14 · default 10; AES: Plaintext 1 MiB, Passphrase 1 KiB, GCM / CBC / CTR / CFB / ECB, 128/192/256-bit; PBKDF2 / HKDF: Password / input bytes 64 KiB, Salt / info 1 KiB, Output length (bytes) 1–256; 1–256 output bytes · up to 2,000,000 PBKDF2 iterations · inputs stay on your device; Time: 30 s; File: 120 s.

?

Frequently asked questions

Is this encryption?

No. A key derivation function produces key bytes. Use an encryption algorithm separately when you need to protect and later recover plaintext.

What must match to reproduce a result?

The input key material, salt, info, hash and output length must match byte for byte.

Can I use HKDF directly on a password?

HKDF is a fast derivation function and is not intended to resist password guessing. Start with a suitable password KDF when your input is a human password.

Does the salt need to be secret?

Salt is not normally secret. Empty salt is supported by RFC 5869, but use the exact salt required by your protocol.

Are my input or derived keys uploaded?

No. Derivation runs in a browser Worker. Copy and Download create only the device-side copies you request; inputs are not put in page URLs or stored in tool history.

Find your next tool

Language

Switch language? Your current work will be cleared. Copy or download it first.