Report

Help us improve this tool

Argon2 Hash Generator

Generate secure Argon2 cryptographic hashes (Argon2id, Argon2i, and Argon2d) with custom parameters entirely in your browser.

O M T

What is Argon2?

Argon2 is a modern cryptographic hashing algorithm selected as the winner of the Password Hashing Competition (PHC) in July 2015. It is specifically designed to secure passwords, credentials, and sensitive data against advanced hardware-based attacks, such as those using Graphics Processing Units (GPUs), Application-Specific Integrated Circuits (ASICs), or Field Programmable Gate Arrays (FPGAs).

The Three Variants of Argon2

Argon2 is available in three distinct variants, each tailored for specific security environments and attack vectors:

  • Argon2id: A hybrid variant that combines the techniques of both Argon2i and Argon2d. It uses a data-independent memory access pattern in the early stages to defend against side-channel cache-timing attacks, and then switches to data-dependent access in later stages to maximize defense against GPU/ASIC attacks. Argon2id is the industry standard and highly recommended for most general password hashing use cases.
  • Argon2i: Optimized to resist side-channel attacks. It accesses memory in a data-independent order, ensuring that execution time and memory access patterns do not leak information about the password. This is ideal for secure backend systems and servers where timing attacks are a threat.
  • Argon2d: Optimized to resist GPU cracking attacks. It uses data-dependent memory access, making it faster and maximizing memory density. However, because its execution paths depend on the input data, it is potentially susceptible to side-channel cache-timing attacks if run on shared hosting environments.

Understanding Argon2 Parameters

One of the key strengths of Argon2 is its high level of configurability. Unlike older hashing algorithms like MD5 or SHA-2, you can adjust several parameters to tune the algorithm to your system's hardware limits:

  • Salt: A random string of bytes added to the password before hashing. The salt ensures that identical passwords yield completely different hashes, preventing the use of precomputed lookup tables (Rainbow Tables) to crack passwords.
  • Memory Cost (Memory Size): The amount of memory (RAM) the algorithm must allocate to compute the hash (measured in KiB). Increasing this value increases the cost of building custom ASIC hardware to crack the hash.
  • Time Cost (Iterations): The number of passes the algorithm makes over the memory block. Increasing the iterations increases the CPU time needed to calculate the hash, making brute-force cracking slower.
  • Parallelism (Threads): The number of independent CPU threads the algorithm can use in parallel to compute the hash. This allows multi-core processors to speed up calculation without lowering security.

Related Security & Hashing Tools

Need other cryptographic hashing tools? Explore our full suite of web security resources:

Frequently Asked Questions

Why should I use Argon2 instead of bcrypt or PBKDF2?

While bcrypt and PBKDF2 are still secure, they only scale in terms of CPU execution time. Attackers can bypass these limitations by building custom hardware (ASICs or FPGAs) to parallelize cracking. Argon2 allows you to configure memory cost, meaning an attacker must allocate real physical RAM for each cracking attempt, which makes hardware attacks extremely expensive.

What are recommended default settings for password storage?

The OWASP recommendations for Argon2id are: a minimum memory cost of 12288 KiB (12 MB), a minimum time cost of 3 iterations, and a parallelism of 1 thread. For higher security settings where hardware permits, 65536 KiB (64 MB) of memory and 1 iteration is commonly used.

How does this online Argon2 generator run safely?

This tool runs completely client-side in your web browser using WebAssembly. Your passwords and inputs are processed locally on your device and are never sent over the network to any server. This guarantees total privacy and security for your credentials.

What does the standard encoded output format look like?

The standard encoded output follows the Modular Crypt Format (MCF). It starts with a tag indicating the algorithm (e.g. $argon2id$), followed by parameters like memory ($m=1024$), iterations ($t=2$), parallelism ($p=1$), the salt, and finally the actual computed hash bytes encoded in Base64.