PBKDF2

Derive key material online with PBKDF2 from password or input material, salt, hash, iterations, and output length. Read more

Derive key material with PBKDF2

PBKDF2 derives bytes from password or other input material plus a salt. It applies a keyed hash repeatedly so that guessing passwords is slower. The same input, salt, hash, iteration count, and output length are required to reproduce the same derived bytes.

Higher iteration counts increase resistance to guessing, but they also make legitimate derivation slower. Choose an iteration count that matches your protocol and threat model.

This page outputs the derived bytes directly. Cipher tools such as AES encryption, DES encryption, Triple DES encryption, and RC4 encryption can use PBKDF2 as a passphrase KDF and then split the derived material into the key and, when needed, IV bytes required by that cipher.

How to use this PBKDF2 calculator

  1. Enter the password or input material and select its encoding.
  2. Optionally enter a salt and choose the salt encoding. An empty salt is treated as zero-length bytes.
  3. Select the hash function and iteration count.
  4. Set the desired output length in bits (must be divisible by 8).
  5. Derive and copy the result as Hex or Base64.

Result example

With UTF-8 input password, salt ATHENA.MIT.EDUraeburn, hash SHA256, 250000 iterations, and 128-bit output, the Hex digest is 62929ab995a1111c75c37bc562261ea3.

Important limitations

PBKDF2 produces derived bytes of the requested length. A cipher workflow may later split those bytes into a key and IV, but this tool simply outputs the derived material. Prefer a dedicated modern password-hashing function when your goal is password storage rather than protocol-compatible key derivation.

For OpenSSL or CryptoJS-compatible legacy passphrase flows, compare with the EvpKDF tool.

Frequently asked questions

Why does my result differ from another tool?

Compare the exact input bytes, salt bytes, hash name, iteration count, and output length. Encoding differences such as UTF-8 versus Hex change the derived result even when the visible text looks the same.

Is an empty salt allowed?

Yes. Empty salt is passed as an empty byte array. Many protocols still require a random salt; empty salt is mainly useful for compatibility checks and controlled experiments.

Input
Output
Share Link
Settings
Salt