Calcul de Hash Argon2 | Compatible Argon2id, Argon2i, Argon2d
Calculez le hash Argon2 d'une chaîne de caractères telle qu'un mot de passe. Compatible avec les trois variantes Argon2id, Argon2i et Argon2d, avec des préréglages de coût mémoire et de nombre d'itérations recommandés par l'OWASP. Le calcul s'effectue entièrement dans votre navigateur : le contenu saisi n'est jamais envoyé au serveur.
Astuces pour le calcul du hash Argon2
- Argon2 est l'algorithme vainqueur de la Password Hashing Competition de 2015, et Argon2id est actuellement la variante recommandée par l'OWASP. Sauf raison particulière, choisissez Argon2id.
- Les boutons de préréglages correspondent aux cinq combinaisons de coût mémoire et de nombre d'itérations recommandées par l'OWASP Password Storage Cheat Sheet. Plus la mémoire allouée est élevée, plus la résistance aux attaques parallèles par GPU est forte.
- Augmenter le « degré de parallélisme (p) » ne change presque rien au temps de calcul dans cette implémentation WebAssembly du navigateur, qui ne parallélise pas réellement le traitement. L'accélération apportée par le parallélisme n'est effective que sur un serveur multicœur.
- Un sel est généré automatiquement à chaque calcul, si bien que la même chaîne avec les mêmes paramètres produit à chaque fois un hash encodé différent.
- Un coût mémoire trop élevé peut rendre l'onglet du navigateur temporairement inactif. Il est conseillé de commencer avec quelques dizaines de mégaoctets.
Foire aux questions
password_verify() en PHP ou toute bibliothèque de vérification Argon2 dans d'autres langages. Faites toutefois attention à la façon dont vous manipulez les données saisies.
Anecdote — la Password Hashing Competition et les origines d'Argon2
Argon2 a été désigné algorithme vainqueur parmi 24 candidats lors de la « Password Hashing Competition » (PHC), organisée entre 2013 et 2015. Cette compétition visait à corriger les faiblesses des méthodes existantes comme BCrypt (1999) ou PBKDF2 (2000), vulnérables aux attaques par force brute accélérées par du matériel spécialisé tel que les GPU ou les ASIC ; Argon2 a donc été conçu pour exiger une grande quantité de mémoire lors du calcul.
Argon2 se décline en trois variantes. Argon2d maximise la résistance aux attaques par GPU mais reste vulnérable aux attaques par canal auxiliaire, tandis qu'Argon2i résiste bien à ces attaques par canal auxiliaire au prix d'une résistance GPU légèrement inférieure. Argon2id combine ces deux approches en une variante hybride, et de nombreux organismes de sécurité, dont l'OWASP, la recommandent en priorité pour le stockage des mots de passe.
Depuis PHP 7.2, il suffit d'appeler password_hash() avec la constante PASSWORD_ARGON2ID pour générer un hash Argon2id. Des bibliothèques officielles ou quasi officielles existent également pour Node.js, Python, Ruby et d'autres langages majeurs, et Argon2id devient de plus en plus souvent le premier choix devant BCrypt pour le stockage des mots de passe dans les nouveaux systèmes.