Argon2 Memory Calculator
Size the Argon2 memory parameter in KiB blocks, validate it against the lane minimum and project peak server RAM.
Inputs
Effective Memory per Hash
64.00MiB
1 KiB Memory Blocks
65,536
Memory per Lane
16,384KiB
Peak Server Memory at Load
1,280MiB
Attacker Area-Time Cost
192MiB-passes
Assessment
Strong — at or above the 46 MiB OWASP Argon2id profile
Step by step
Values used
Argon2 memory cost = 64 MiB; Parallelism (lanes) = 4 lanes; Time cost (passes) = 3 passes; Peak concurrent hashes = 20 hashes
Argon2 Memory
Argon2 allocates m KiB blocks of 1 KiB each, rounded up to a multiple of 4 × lanes and never below 8 × lanes; peak RAM = m × concurrent hashes.
Area-time hardness
attacker area-time cost ∝ memory × passes, the metric that makes Argon2 hostile to ASICs.
Effective Memory per Hash
= 64.00 MiB
1 KiB Memory Blocks
= 65,536
Memory per Lane
= 16,384 KiB
Peak Server Memory at Load
= 1,280 MiB
Attacker Area-Time Cost
= 192 MiB-passes
Assessment
= Strong — at or above the 46 MiB OWASP Argon2id profile
How it works
Argon2 fills a memory matrix of m one-kibibyte blocks split across p lanes, so each lane owns m ÷ p blocks and the spec rejects any m below 8 × p. An attacker's silicon cost scales with memory × passes, which is what a GPU cannot cheaply replicate thousands of times over. Memory is Argon2's real defence, but it is also the parameter that will exhaust a login service under a burst — sizing it without multiplying by peak concurrency is how authentication nodes get OOM-killed.
Formulas
Argon2 Memory
Argon2 allocates m KiB blocks of 1 KiB each, rounded up to a multiple of 4 × lanes and never below 8 × lanes; peak RAM = m × concurrent hashes.
- m
- Memory cost in KiB
- p
- Lane count (parallelism)
- 8 × p
- Absolute minimum block count Argon2 accepts
Area-time hardness
attacker area-time cost ∝ memory × passes, the metric that makes Argon2 hostile to ASICs.
Frequently Asked Questions
How is Argon2 Memory calculated?
Argon2 allocates m KiB blocks of 1 KiB each, rounded up to a multiple of 4 × lanes and never below 8 × lanes; peak RAM = m × concurrent hashes. Argon2 fills a memory matrix of m one-kibibyte blocks split across p lanes, so each lane owns m ÷ p blocks and the spec rejects any m below 8 × p. An attacker's silicon cost scales with memory × passes, which is what a GPU cannot cheaply replicate thousands of times over.
Why does Argon2 Memory matter?
Memory is Argon2's real defence, but it is also the parameter that will exhaust a login service under a burst — sizing it without multiplying by peak concurrency is how authentication nodes get OOM-killed.
What values do I need to enter?
This calculator takes 4 inputs: Argon2 memory cost, Parallelism (lanes), Time cost (passes), Peak concurrent hashes. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
What are the OWASP Argon2id profiles?
OWASP lists m=47104 KiB (46 MiB) with t=1 and p=1, or m=19456 KiB (19 MiB) with t=2 and p=1, as equivalent minimums. Trade memory for passes only along that curve — do not drop below 19 MiB.