Argon2 Hash Generator & Verifier (Argon2id, Argon2i, Argon2d)
Hash a password with Argon2id, Argon2i or Argon2d (RFC 9106) and get the standard $argon2id$v=19$… string, or verify a password against one. Runs in your browser.
Argon2 won the Password Hashing Competition in 2015 and is standardised in RFC 9106. It is deliberately slow and memory-hungry, so each guess costs an attacker real RAM as well as time, which blunts GPU and ASIC cracking. This tool hashes a password with Argon2id, Argon2i or Argon2d — in plain JavaScript inside your browser — and outputs the standard $argon2id$v=19$m=…,t=…,p=…$salt$hash string that libraries such as libsodium, PHP’s password_hash and argon2-cffi read; it also verifies a password against such a string.
How to use this tool
- Enter the password and pick Argon2id unless you have a reason not to.
- Set memory (KiB), iterations and parallelism; the defaults are OWASP’s minimum (19 MiB, 2 passes, 1 lane).
- Leave the salt empty to get a random 16-byte salt, and press Calculate.
- To check a login, choose verify and paste the stored $argon2… string.
Formula
H₀ = BLAKE2b(p, T, m, t, v, type, P, S, K, X) → fill m KiB of 1 KiB blocks with G(previous, reference), t times → tag = H′(last blocks XORed)
Memory is split into p lanes of 4 segments. Argon2d picks reference blocks from the data (fast, but leaks timing), Argon2i from a counter (side-channel safe), and Argon2id uses the Argon2i method for the first half of the first pass and Argon2d after. G is a BLAKE2b-based compression with multiplications (BlaMka). The PHC string stores the variant, version 19 (0x13), m, t, p, and the salt and hash in Base64 without padding.
Example
With the RFC 9106 test inputs — 32 KiB, 3 passes, 4 lanes, password 32 × 0x01, salt 16 × 0x02, secret 8 × 0x03 and data 12 × 0x04 — Argon2id gives 0d640df58d78766c08c037a34a8b53c9d01ef0452d75b65eb52520e96b01e659, the value in the RFC. Hashing "password" with the salt "somesaltsomesalt", m = 64, t = 2, p = 1 gives $argon2id$v=19$m=64,t=2,p=1$c29tZXNhbHRzb21lc2FsdA$Gpj7qOY5RCXJ….
Frequently asked questions
Which parameters should I use?
OWASP’s Password Storage Cheat Sheet lists Argon2id with at least 19 MiB of memory and 2 iterations (or more memory with fewer passes). RFC 9106 recommends 2 GiB with 1 pass where the server can afford it, or 64 MiB with 3 passes. Measure on your own hardware.
Why does it take a while in the browser?
That is the point of Argon2: every hash must touch all the memory. This page runs it in JavaScript on one thread, so it is slower than a native library; it caps memory at 64 MiB to keep the tab responsive.
Are my passwords safe here?
Hashing happens entirely in your browser and the password field is never put in links or history. For real user databases, hash on your server with a maintained library.
Sources
Last updated:
Page address with these inputs: https://kakao.mobile/tools/argon2-generator/
Cite or embed this tool
kakaoCalc. (2026, November 8). Argon2 Hash Generator & Verifier (Argon2id, Argon2i, Argon2d). https://kakao.mobile/tools/argon2-generator/
“Argon2 Hash Generator & Verifier (Argon2id, Argon2i, Argon2d).” kakaoCalc, 8 Nov. 2026, kakao.mobile/tools/argon2-generator/.
Paste this code into your page. The widget runs in your visitors' browsers, shows no ads and keeps a link back to this page. Embedding terms