A worked example, rendered from real sample data. Sign in to run the tool on your own input.
$argon2id$v=19$m=65536,t=3,p=4$X/+2iTQpJL6pWBLPmxx4Jw$snYzQdjw7uaQcQp93ujtXi1HYU+i9fJaq2Mbf6uuhiM═══ What this tool does — and what it does not ═══
✗ It does NOT compute an Argon2 hash. No Argon2 implementation is installed here, and a fabricated hash would be worse than useless.
✓ It parses a real Argon2 encoded hash, models what your parameters cost, checks them against RFC 9106 and OWASP, and writes the configuration line for your language.
ℹ Never paste a production password into any web form, including this one. Choose parameters here, then hash locally with the snippet at the bottom.
═══ Parsed encoded hash ═══
Variant: argon2id — hybrid — data-independent in the first half pass, data-dependent afterwards. The variant RFC 9106 and OWASP tell you to use.
Version field: v=19 (0x13, Argon2 1.3 — current)
Memory: m=65536 KiB (64.0 MiB)
Iterations: t=3
Parallelism: p=4 lanes
Salt: 16 bytes (22 Base64 characters)
Digest: 32 bytes (43 Base64 characters)
✓ A 16-byte salt meets the RFC 9106 recommendation.
═══ Cost model for these parameters ═══
Variant: argon2id — hybrid — data-independent in the first half pass, data-dependent afterwards. The variant RFC 9106 and OWASP tell you to use.
Memory: 65536 KiB = 64.0 MiB = 65,536 blocks of 1 KiB
Lanes: 4, four slices each, 4,096 blocks per segment
Passes: 3
Total block writes: 196,608 (memory × passes — this is the work an attacker must repeat per guess)
Peak RSS per hash: about 64.0 MiB, held for the whole computation
10 concurrent logins would need about 0.63 GiB of RAM at once
Modelled time: roughly 53 ms per hash
• Modelled, not measured: it assumes about 1 GiB/s of memory filling per core, which is a reasonable figure f
…
Parse Argon2 encoded hashes and model memory, pass and lane settings — no hash is computed. Part of the DevTools Surf developer suite. Browse more tools in the Security / Crypto collection.