Hachage/Crypto
Argon2 Hash + Verify
Hacher des mots de passe avec Argon2 (vainqueur de la Password Hashing Competition, RFC 9106) — variantes d/i/id, avec vérification par rapport à un hash existant.
Argon2 is the Password Hashing Competition winner and the algorithm recommended in RFC 9106 for hashing passwords. Unlike bcrypt, it deliberately demands a lot of memory, not just CPU time, which makes attacks on specialized hardware (GPUs, ASICs) much harder.
How to use it
- Hash: enter a password, pick a variant (Argon2d, Argon2i, or Argon2id), and set the parameters (memory, iterations, parallelism) to get a hash.
- Verify: paste a password and an existing Argon2 hash to check whether they match, without hashing manually yourself.
- Argon2id is the recommended default for most applications — it combines the strengths of Argon2i and Argon2d.
Common uses
- Checking that a backend generates correct Argon2 hashes with the expected parameters before a release.
- Tuning memory and iteration parameters to fit within a server's response-time budget (typically 250-500ms).
- Comparing Argon2 against bcrypt or PBKDF2 when choosing an algorithm for a new project.
Things to keep in mind
The memory parameter is Argon2's main defense: the more memory hashing requires, the more expensive it is for an attacker to parallelize an attack on a GPU with limited fast memory per chip.
Argon2id is recommended for most cases: Argon2i resists side-channel attacks better, Argon2d resists GPU attacks better, and id combines both approaches.
Questions fréquentes
Pourquoi Argon2 est-il recommandé plutôt que bcrypt ou PBKDF2 ?
Argon2 a remporté la Password Hashing Competition et est memory-hard, ce qui le rend beaucoup plus coûteux à attaquer avec du matériel spécialisé (GPU, ASIC) que des algorithmes qui ne sollicitent que le CPU. C'est aujourd'hui l'algorithme de hachage de mot de passe le plus recommandé.
Quelle variante choisir : Argon2i, Argon2d ou Argon2id ?
Argon2i résiste aux attaques par canal auxiliaire et convient au hachage de mot de passe pur, Argon2d résiste mieux au craquage par GPU mais est vulnérable aux attaques par canal auxiliaire, et Argon2id combine les deux approches. Argon2id est la variante recommandée par défaut dans la plupart des cas.
Pourquoi le calcul peut-il prendre plusieurs secondes ?
C'est voulu : Argon2 est conçu pour consommer volontairement du temps et de la mémoire, ce qui ralentit fortement les attaques par force brute. Plus la mémoire et les itérations sont élevées, plus le hachage est lent mais résistant.
D'où vient Argon2 comme standard ?
Argon2 a remporté la Password Hashing Competition en 2015 — un concours ouvert de cryptographes visant à trouver le meilleur algorithme de hachage de mot de passe. Depuis, l'OWASP le recommande en priorité sur bcrypt.
Le paramètre de parallélisme ne fait-il qu'accélérer le hachage ?
Non, ce même paramètre accélère tout autant la recherche exhaustive pour un attaquant disposant de matériel multicœur, il faut donc l'ajuster au nombre réel de cœurs du serveur, et non l'augmenter sans nécessité.