Skip to content

Argon2 Generator

Generate an Argon2id password hash with a random 16-byte salt and your choice of memory, iterations, parallelism and hash length. Memory is capped at 64 MiB and iterations at 4, and the defaults follow the OWASP baseline of 19 MiB and 2 passes. The tool returns the standard PHC string starting with $argon2id$v=19$, which PHP, libsodium and the argon2 libraries verify. The password is never echoed.

Reset

Frequently asked questions

What is Argon2id?

Argon2 won the Password Hashing Competition in 2015 and is specified in RFC 9106. Argon2id is the hybrid variant that resists both side-channel and GPU attacks. It is the variant OWASP and the RFC recommend for password storage.

What do the memory, iterations and parallelism settings mean?

Memory sets how many MiB each hash fills, iterations set how many passes run over that memory, and parallelism sets the number of lanes. Higher memory and iterations make each guess more expensive for attackers. Here memory ranges from 1 to 64 MiB, iterations from 1 to 4 and parallelism from 1 to 4.

Which settings should I use?

The defaults are 19 MiB, 2 iterations and 1 lane, the OWASP minimum for Argon2id. PHP's default is 64 MiB with 4 iterations, which you can also reproduce here. In production, use as much memory as your servers can spare per login.

Why are memory and iterations capped?

Each hash really allocates the memory you request and runs every pass on a shared server. Limiting it to 64 MiB and 4 iterations keeps each request to a fraction of a second while still covering common production settings.

What does the output string contain?

A result such as $argon2id$v=19$m=19456,t=2,p=1$ followed by the salt and the hash lists the variant, the version, the memory in KiB, the iterations and the lanes. Salt and hash are in unpadded Base64. Store the whole string, because verification reads every parameter from it.

Why is the hash different every time?

Each request uses a fresh random 16-byte salt, so the same password produces a different string each time. All of them verify correctly with the right password.

Can I choose the hash length?

Yes, from 16 to 64 bytes, with 32 bytes as the default. Longer tags do not make guessing harder, so 32 bytes is enough for password storage.

Which systems accept these hashes?

PHP password_verify, libsodium's crypto_pwhash_str_verify, the argon2 package for Node.js, argon2-cffi for Python and Spring Security all read the PHC string format. The Argon2 Verifier on this site checks them too.

Is my password stored or returned?

No. The password is used only in memory to compute the hash and is removed from the response. It is never logged or saved.

Can I generate Argon2i or Argon2d hashes?

No. The tool produces Argon2id only, because it is the recommended variant for passwords. The Argon2 Verifier still accepts Argon2i and Argon2d hashes.

About OneClick Pro

OneClick Pro is a free collection of more than 150 web tools for everyday work: converting images and units, formatting and validating code, checking domains and SEO, and working with text, dates and numbers. Every tool runs without registration or subscription, and what you enter is only used to calculate your result and is never stored. Use it as a quick toolbox for one-off tasks, or bookmark the tools you rely on every day.