Skip to content
argon2
step 1/5

Reading — step 1 of 5

Read

~1 min readModern Hashes

argon2

Winner of the 2015 Password Hashing Competition. The CURRENT recommendation for new code.

Three variants:

  • argon2d: data-dependent. Resists GPU attacks BUT vulnerable to side-channel timing attacks.
  • argon2i: data-INdependent. Side-channel resistant. Slightly weaker against GPU.
  • argon2id: hybrid. RECOMMENDED.

Memory-hard: requires lots of RAM during hashing. Hardware attackers must build memory-rich silicon, much more expensive than GPU-pure attacks.

Three tuning parameters:

  • memory (KB) — how much RAM to use. OWASP recommends 19 MiB minimum (m=19456).
  • iterations (t) — passes over the memory. OWASP: t=2.
  • parallelism (p) — concurrent threads. Typically 1.

Format:

$argon2id$v=19$m=65536,t=3,p=4$<salt>$<hash>

Modern OWASP recommendations (2024):

  • argon2id: m=19MiB, t=2, p=1 — minimum
  • argon2id: m=12MiB, t=3, p=1 — alternative
  • bcrypt: cost 10+ minimum, 12+ preferred

Use the argon2-cffi (Python), node-argon2, argon2-go libraries. Don't roll your own — implementation is subtle.

Discussion

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

Sign in to post a comment or reply.

Loading…