Home › Developer Tools › Argon2 Hash Generator

Argon2 Hash Generator

Create Argon2id, Argon2i or Argon2d password hashes with the memory, iterations, parallelism and salt you choose, or check a password against an existing $argon2 hash. Everything runs on your device; the password never leaves the page.

Last updated:

Loading Argon2 engine…

Variant
64 MiB
passes over memory
lanes / threads
256-bit tag
Secret key (pepper), optional

A secret is mixed into the hash but not stored in it. You need the same secret to verify. Most password libraries do not use one.

Advertisement
Advertisement

How to use the Argon2 Hash Generator

  1. Type the password you want to hash in the Generate tab.
  2. Pick a variant and preset: Argon2id with the OWASP or RFC 9106 settings suits most logins; switch to Custom to set memory, iterations and parallelism yourself.
  3. Keep the random salt or enter your own as text, hex or Base64 (at least 8 bytes).
  4. Press Generate hash and copy the encoded string into your database, or the raw hex if you need a derived key.
  5. To check a password, open the Verify tab, paste an $argon2 hash, type the password and press Verify password.

How Argon2 works

Argon2 (RFC 9106) turns a password and a salt into a fixed-length tag in three steps:

  1. Initial hash: the password, salt, optional secret and associated data, and every parameter (p, tag length, m, t, version, type) are hashed with BLAKE2b into a 64-byte seed H0.
  2. Memory filling: the memory is split into p lanes of 1 KiB blocks. Each new block is computed from the previous block and a pseudo-randomly chosen earlier block with a BLAKE2b-based compression function. This is repeated for t passes, so the full m KiB must be held in RAM.
  3. Finalisation: the last block of every lane is XORed together and hashed to the requested tag length.

Because every pass touches every block, an attacker who tries to save memory must recompute blocks over and over. That trade-off is what makes Argon2 expensive on GPUs and custom hardware.

Argon2id, Argon2i and Argon2d compared

VariantMemory accessStrengthUse it for
Argon2idData-independent for the first half of pass 1, data-dependent afterwardsResists both side-channel and GPU trade-off attacksPassword hashing (the default choice)
Argon2iAlways data-independentBest side-channel resistance, needs more passes against trade-off attacksKey derivation where timing leaks matter
Argon2dAlways data-dependentStrongest against GPU cracking, but leaks timing informationCryptocurrency proof-of-work and back-end systems with no side-channel exposure

Recommended parameters

SourceMemory (m)Iterations (t)Parallelism (p)
OWASP Password Storage Cheat Sheet (minimum)19 MiB (19,456 KiB)21
OWASP alternative46 MiB (47,104 KiB)11
RFC 9106 first recommendation2 GiB14
RFC 9106 second recommendation64 MiB (65,536 KiB)34

Use a 16-byte random salt and a 32-byte tag. Memory is the parameter that hurts attackers most, so raise it first and then add iterations until a hash takes roughly 0.1 to 0.5 seconds on your server. Browser timings shown by this tool are a rough guide only: servers with native libraries are usually faster.

Reading an encoded Argon2 hash

Example: $argon2id$v=19$m=65536,t=2,p=1$c29tZXNhbHQ$CTFhFdXPJO1aFaMaO6Mm5c8y7cJHAph8ArZWb2GRPPc is the password password with the salt somesalt. Press Load example in the Verify tab to check it.

PartExampleMeaning
Variant$argon2idargon2id, argon2i or argon2d
Version$v=1919 = 0x13 = Argon2 1.3 (missing means the older 1.0)
Parameters$m=65536,t=2,p=1Memory in KiB, iterations, lanes
Salt$c29tZXNhbHQBase64 without padding
Hash$CTFhFdXPJO1a…The tag, Base64 without padding

Frequently asked questions

What is Argon2?

Argon2 is the password hashing function that won the Password Hashing Competition in 2015 and is standardised in RFC 9106. It is deliberately slow and memory-hard: every hash must fill a configurable amount of RAM, which makes large-scale guessing on GPUs and ASICs expensive.

Which Argon2 variant should I use?

Use Argon2id. It runs the first half of the first pass with data-independent memory access (like Argon2i, resisting side-channel attacks) and the rest with data-dependent access (like Argon2d, resisting GPU trade-off attacks). RFC 9106 and OWASP both recommend Argon2id for passwords.

What parameters are recommended?

OWASP's Password Storage Cheat Sheet suggests Argon2id with at least 19 MiB of memory, 2 iterations and parallelism 1 (or equivalent trade-offs such as 46 MiB with 1 iteration). RFC 9106 recommends 2 GiB, 1 iteration and 4 lanes where memory allows, or 64 MiB, 3 iterations and 4 lanes otherwise. Tune so that one hash takes a fraction of a second on your server.

Why does the same password give a different hash each time?

A new random salt is generated for every hash and stored inside the encoded string. This makes identical passwords produce different hashes and defeats precomputed tables. Verification reads the salt and parameters back out of the stored hash.

What does the encoded hash $argon2id$v=19$m=65536,t=3,p=4$… mean?

It is the PHC string format: the variant, the version (19 = Argon2 1.3), memory in KiB (m), iterations (t), parallelism (p), then the salt and the hash, both in Base64 without padding. Libraries such as PHP password_hash, argon2-cffi, node argon2 and libsodium read and write this format.

Is it safe to type a real password here?

Hashing runs entirely in your browser. The password and the hash are never uploaded or stored. For production secrets it is still good practice to hash on the server that will verify them.

Can an Argon2 hash be decrypted?

No. Argon2 is a one-way function. The only way to recover a password is to guess candidates and hash each one with the stored salt and parameters, which Argon2 makes slow and memory-hungry by design.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

Bcrypt Hash Generator & CheckerCreate bcrypt password hashes and check a password against a hash.Password GeneratorCreate strong passwords and passphrases.Hash GeneratorGenerate MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files.HMAC GeneratorGenerate and verify HMAC signatures with SHA-256, SHA-512, SHA-1 or MD5.MD5 Hash GeneratorGenerate MD5 hashes of text, lines or files and verify checksums.SHA-256 Hash GeneratorSHA-256 and HMAC-SHA256 hashes of text, lines or files, in hex or Base64.Base64 Encoder DecoderEncode or decode Base64 text and files, and make data URIs.URL Encoder DecoderPercent-encode or decode URLs, query strings and form data.HTML Entity Encoder / DecoderEscape and unescape HTML entities, named or numeric.Binary TranslatorConvert text to binary, hex, octal and back.CRC32 Checksum CalculatorCalculate CRC-32, CRC-32C, CRC-16 and Adler-32 checksums of text or large files.JWT DecoderDecode JSON Web Tokens, read the claims and expiry, and verify HS256 signatures.JWT GeneratorCreate and sign HS256, HS384 or HS512 JSON Web Tokens in your browser and verify them.Password Strength CheckerSee how strong a password really is, how long it takes to crack and how to improve it.Caesar CipherEncode and decode Caesar shift ciphers and crack unknown shifts with a ranked brute force.Vigenère CipherEncrypt and decrypt Vigenère and Autokey ciphers, and crack unknown keys with frequency analysis.Atbash CipherEncode and decode Atbash ciphers (A↔Z, B↔Y) in Latin or Hebrew, with a live letter mapping table.ASCII TableFull ASCII code chart 0–255 in decimal, hex, octal, binary and HTML, with search and copy.Unicode Character LookupFind Unicode characters by name or code point and copy them with UTF-8, HTML and code escapes.Punycode ConverterConvert international domain names, emails and URLs between Unicode and xn-- Punycode, in bulk.JSON Escape / UnescapeEscape text for a JSON string, unescape \n and \" back to text, or stringify a whole object.Binary to HexConvert binary to hex instantly with steps and signed mode.Hex to BinaryConvert hex to binary instantly with steps and signed mode.Binary CalculatorAdd, subtract, multiply, divide, AND, OR, XOR and shift binary numbers with decimal values.Hex CalculatorHexadecimal + − × ÷ and AND, OR, XOR, NOT, shifts with decimal and binary equivalents.Base32 Encoder / DecoderEncode and decode Base32 (RFC 4648), Base32hex, Crockford and z-base-32 from text, hex or files.Base58 Encoder / DecoderEncode and decode Base58 and Base58Check (Bitcoin alphabet) from text or hex, with checksum verification.Unicode Escape / UnescapeConvert text to \uXXXX, \u{...}, \x, &#...; or CSS escapes and decode them back.File Hash CheckerGet MD5, SHA-1, SHA-256 and SHA-512 checksums of files and verify them against a hash.TOTP GeneratorGenerate 2FA one-time codes from a secret key, create otpauth QR codes and verify codes.RSA Key GeneratorGenerate 2048, 3072 or 4096-bit RSA key pairs as PEM, PKCS#1, JWK or OpenSSH, locally.SSL Certificate DecoderDecode PEM SSL/X.509 certificates: subject, issuer, expiry, SANs, key and fingerprints.Text Encryption ToolEncrypt and decrypt text with a password using AES-256-GCM, entirely in your browser.Base64 to PDFDecode a Base64 string to a PDF with preview and download, or encode a PDF to Base64.Bitwise CalculatorCalculate AND, OR, XOR, NOT and bit shifts at 8–64 bits with a bit grid and all bases.CSR GeneratorCreate a certificate signing request (CSR) and private key with SANs, RSA or ECDSA, in your browser.MongoDB ObjectId to TimestampDecode a MongoDB ObjectId to its creation date, or build ObjectIds from dates for range queries.PGP Encrypt / DecryptEncrypt, decrypt, sign and verify PGP messages with your armored keys, entirely offline.UTF-8 Encoder / DecoderConvert text to UTF-8 bytes in hex, decimal, binary, \x or % and decode bytes back to text.UUID Decoder & ValidatorDecode any UUID: version, variant, v1/v6/v7 timestamp and MAC node, plus bulk validation.Base64 to FileDecode Base64 or a data URI to a downloadable file; detects the real file type and previews it.File Encryption ToolEncrypt and decrypt any file with a password using AES-256-GCM, entirely in your browser.Passphrase GeneratorMake strong, memorable diceware passphrases from a 7,776-word list, with entropy in bits.CSR DecoderDecode a PEM certificate signing request: subject, SANs, key size, signature and CA readiness checks.Enigma Machine SimulatorEncrypt and decrypt with a virtual Enigma I, M3 or M4: rotors, rings, plugboard and lampboard.Hex Opacity CalculatorConvert opacity percent to a 2-digit HEX alpha code and full #RRGGBBAA color, with a 0-100% table.Playfair CipherEncrypt and decrypt Playfair ciphers from a keyword, with the 5x5 key square and every digraph step.Pwned Password CheckerCheck if a password appeared in data breaches; only 5 characters of its SHA-1 hash are sent.RSA Encryption ToolEncrypt text with an RSA public key and decrypt it with the private key using RSA-OAEP in your browser.SAML DecoderDecode SAMLRequest and SAMLResponse messages to readable XML, attributes and validity times.SSL Certificate ConverterConvert SSL certificates and keys between PEM, DER, PFX/P12 and P7B in your browser.Checksum CalculatorCompute 8-bit sum, two's complement LRC, XOR/BCC, NMEA, Fletcher and Internet checksums of bytes.PBKDF2 Hash GeneratorDerive PBKDF2 keys from a password, salt and iteration count with SHA-1, SHA-256 or SHA-512.Protobuf DecoderDecode raw Protocol Buffers hex or Base64 without a schema, or add a .proto for field names.XML Escape / UnescapeEscape & < > " ' for XML text and attributes, unescape entities back, or wrap text in CDATA.Binary Search Tree VisualizerInsert, delete and find in BST, AVL and red-black trees with animated rotations and traversals.PGP Key GeneratorGenerate an OpenPGP key pair (Curve25519, NIST ECC or RSA) with passphrase and expiry, offline.Quoted-Printable Encoder / DecoderEncode or decode quoted-printable email text (MIME) with UTF-8 and 76-character soft line breaks.Self-Signed Certificate GeneratorCreate a self-signed SSL certificate and key for localhost or dev servers, as PEM or PFX.SHA-1 Hash GeneratorSHA-1 and HMAC-SHA1 of text or files in hex or Base64, plus Git blob hashes and verify.SHA-512 Hash GeneratorSHA-512 and SHA-384 hashes of text or files in hex or Base64, HMAC and hash verification.SRI Hash GeneratorCreate Subresource Integrity hashes (sha256/384/512) and ready <script> or <link> tags.SSH Key GeneratorGenerate Ed25519 or RSA SSH key pairs in your browser: OpenSSH public key plus private key.String Escape / UnescapeEscape or unescape strings for JavaScript, Java, C#, Python, C, SQL, regex, CSV and shell.
See all 65 Encoders, Hashes & Crypto →