Vérification de hachage Argon2 | Comparer un mot de passe et un hachage encodé
Saisissez un mot de passe et un hachage Argon2 encodé ($argon2id$...) pour vérifier s'ils correspondent. Calcul entièrement local, sans envoi au serveur.
Vérifier une empreinte Argon2
Argon2 a remporté la Password Hashing Competition en 2015 et constitue aujourd'hui **l'empreinte de mot de passe la plus recommandée pour les travaux neufs.** Sa différence essentielle avec bcrypt tient à ce qu'on peut y régler **l'usage de la mémoire autant que le temps de calcul.** Les processeurs graphiques et le matériel dédié excellent en arithmétique parallèle mais peinent à doter chaque cœur d'une large réserve de mémoire : en exiger relève donc nettement le coût d'une attaque par force brute.
Une empreinte Argon2 prend la forme `$argon2id$v=19$m=19456,t=2,p=1$sel$condensat`, **les paramètres et le sel étant inscrits dans la chaîne elle-même.** La vérification n'a donc besoin d'aucune liste de paramètres séparée : l'empreinte et le mot de passe suffisent. Cet outil effectue précisément cette vérification. **Tout est calculé dans votre navigateur, et ni le mot de passe ni l'empreinte que vous saisissez ne sont jamais envoyés à un serveur.**
Comment vérifier
- Collez l'empreinte Argon2 Saisissez telle quelle la chaîne encodée commençant par `$argon2id$`.
- Saisissez le mot de passe Tapez le mot de passe en clair que vous souhaitez confronter.
- Lancez la vérification **L'algorithme étant conçu pour consommer beaucoup de mémoire, l'opération peut prendre quelques secondes.** C'est le comportement attendu.
- Lisez le résultat Vous êtes informé de la concordance ou non.
Astuces pour en tirer le meilleur parti
- Pour la vérification, collez directement le hachage encodé (chaîne commençant par $argon2id$) généré par l'outil Calcul de hachage Argon2.
- Le hachage encodé contient déjà la variante, le coût mémoire, le nombre d'itérations et le sel : il n'est donc pas nécessaire de préciser ces paramètres séparément lors de la vérification.
- Si le format du hachage est invalide (caractères manquants ou saut de ligne parasite lors de la copie, par exemple), un message d'erreur s'affiche : vérifiez que vous avez bien copié le texte intégral.
- En cas de non-correspondance, vérifiez que le mot de passe ne contient pas involontairement une différence de casse ou des espaces superflus en début ou fin de chaîne.
Dans quels cas cela sert
Contrôler une implémentation d'authentification
Confirmez, avec un couple connu d'empreinte et de mot de passe, que votre propre code de connexion vérifie correctement.
Confirmer une migration
Établissez à l'avance si des empreintes reprises d'un autre système restent vérifiables telles quelles.
Examiner les paramètres retenus
Lisez les valeurs `m`, `t` et `p` inscrites dans la chaîne pour voir quel coût a été configuré.
Boucler la boucle avec le générateur
Confirmez qu'une valeur produite par le générateur d'empreintes Argon2 se vérifie correctement ici.
Les termes d'Argon2 expliqués
- Argon2id
- La variante conjuguant résistance aux attaques par canal auxiliaire et résistance aux attaques par processeur graphique. **C'est le choix standard pour les travaux neufs.**
- m (coût mémoire)
- La quantité de mémoire employée, exprimée en kibioctets. **C'est le paramètre central qui rend Argon2 résistant aux attaques par processeur graphique.**
- t (coût temporel)
- Le nombre d'itérations. L'augmenter allonge le calcul et, avec lui, le coût pour l'attaquant.
- p (parallélisme)
- Le nombre de voies traitées en parallèle, réglé selon le nombre de cœurs du serveur.
- Sel
- Des données aléatoires renouvelées pour chaque empreinte. **Le même mot de passe donne chaque fois une empreinte différente, ce qui annule les attaques par tables arc-en-ciel.**
- Empreinte encodée
- Le format réunissant nom de l'algorithme, paramètres, sel et condensat en une seule chaîne. Il porte tout ce dont la vérification a besoin.
Questions fréquentes
Anecdote — Pourquoi la comparaison de hachages suffit-elle à vérifier un mot de passe ?
La vérification d'un mot de passe peut sembler consister à « comparer directement le mot de passe enregistré avec celui saisi », mais le mécanisme réel est tout autre. Le serveur (ou un traitement côté client comme celui de cet outil) recalcule le hachage du mot de passe saisi avec le même algorithme et le même sel que lors de l'enregistrement initial, puis compare uniquement ce résultat au hachage déjà stocké. Le mot de passe d'origine lui-même n'est jamais l'objet d'une « comparaison » : l'avantage de cette méthode est qu'il suffit de vérifier la correspondance entre deux hachages.
Ce mécanisme fonctionne parce qu'une fonction de hachage comme Argon2 est « déterministe » : avec la même entrée, le même sel et les mêmes paramètres, elle produit toujours la même sortie. La chaîne de hachage encodée (au format $argon2id$v=19$m=...$sel$hachage) intègre déjà le sel et tous les paramètres utilisés lors du calcul initial, si bien qu'il n'est pas nécessaire de les préciser à nouveau lors de la vérification : le hachage seul permet un recalcul complet.
C'est précisément grâce à ces deux propriétés — l'« unidirectionnalité » (impossible de retrouver le mot de passe d'origine à partir du hachage) et le « déterminisme » (une même entrée produit toujours la même sortie) — que les exploitants de services peuvent vérifier une connexion en toute sécurité sans jamais stocker le mot de passe en clair de l'utilisateur. Même en cas de fuite de la base de données, l'attaquant n'obtient que des valeurs de hachage, et avec un algorithme aussi coûteux en calcul qu'Argon2, une attaque par force brute visant à retrouver le mot de passe d'origine prendrait un temps considérable.