Argon2i Hash

Technical details, regex signatures, and cracking commands for the Argon2i algorithm.

Regex Identification Signature:
^\$argon2i\$v=19\$m=[0-9]{1,6},t=[0-9]{1,2},p=[0-9]{1,2}\$[^$]+\$[^\s]{6,134}$
Not supported natively by Hashcat
John the Ripper Command:
← Back to Hash Identifier

What is Argon2i?

Argon2i, introduced in 2015 as part of the Password Hashing Competition (PHC) and standardized in RFC 9106, is a memory-hard, iterative cryptographic hash function designed to resist parallel and GPU-based brute-force attacks. Its origins trace back to the need for a successor to legacy algorithms like bcrypt and PBKDF2, which were increasingly vulnerable to optimized hardware acceleration. Argon2i operates by partitioning input data into independent memory blocks, processing them in a way that maximizes memory locality while introducing deliberate computational overhead through repeated passes over the data. Structurally, it consists of three core components: a *memory-hard* design (via sequential memory access patterns), a *time-memory tradeoff* mechanism (adjustable via parameters like *t* for iterations and *m* for memory usage), and a *parallelizable* but *non-parallel-friendly* architecture (intentionally thwarting GPU/FPGA optimizations). Its primary use-case is secure password storage, where resistance to both timing attacks and hardware acceleration is critical, particularly in environments where adversaries possess high-performance computing resources.

Despite its robustness, Argon2i remains vulnerable to cracking due to its reliance on tunable parameters that may be misconfigured, exposing it to tradeoff attacks. The algorithm’s memory-hard nature assumes an adversary’s computational resources are bounded by RAM constraints, but poorly chosen *m* (memory cost) values can allow attackers to exploit faster systems with more memory, reducing the effective security margin. Additionally, while Argon2i mitigates GPU parallelism via its sequential memory access, optimized CPU implementations (e.g., via AVX-512 or SIMD instructions) can still achieve significant speedups, narrowing the gap against brute-force attempts. Theoretical weaknesses also arise from its reliance on pseudorandom functions (PRFs) like ChaCha20 or AES, which, if compromised, could enable collision attacks or precomputed rainbow tables if salts are reused or weak. Finally, its iterative nature—though protective—can be exploited via *side-channel timing attacks* if not implemented with constant-time operations, leaking information about the underlying plaintext during hashing.

Identifying Argon2i Hashes

Identifying a hash blindly is often difficult because multiple algorithms can output strings of the exact same length. For example, a standard 32-character hexadecimal string could be MD5, NTLM, MD4, or LM. To definitively identify Argon2i, security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.

How to Crack Argon2i

If you need to recover the plaintext password for a Argon2i hash during a penetration test or forensics investigation, you must supply the correct module ID to your cracking software. Use the exact commands provided at the top of this page to target the hash successfully.