Skip to content
PBKDF2
step 1/5

Reading — step 1 of 5

Read

~1 min readModern Hashes

PBKDF2

The original "slow it down" approach: APPLY THE HASH MANY TIMES.

python

Iterations are tuned so one hash takes ~250 ms. Slows attackers proportionally.

PBKDF2 (RFC 8018) is widely supported (built into OS-level keychains, TLS, file encryption). NIST-approved.

But PBKDF2 has a weakness: it's CPU-bound only. GPUs and ASICs are massively parallel and chew through PBKDF2 fast. In 2024, an attacker with $100k of GPU compute brute-forces PBKDF2-100k iterations in days.

Modern allocators add MEMORY HARDNESS (next lessons): make the function require lots of RAM, which GPUs/ASICs can't easily parallelize.

Iteration counts (industry guidance):

  • 2010: 10k iterations
  • 2024: 600k+ iterations (OWASP)

You should bump iteration count over time as hardware speeds up. Existing hashes need to be REHASHED on next login (using stored cost; rehash if below target).

Discussion

Ask a question, share an insight, or help someone who’s stuck.

Sign in to post a comment or reply.

Loading…