Vérificateur de Hash BCrypt | Comparez Mot de Passe et Hash Gratuitement
Vérifiez gratuitement et en quelques secondes si un mot de passe correspond à un hash BCrypt. Fonctionne comme password_verify() en PHP, idéal pour déboguer des problèmes de connexion. Compatible $2a$ et $2b$.
| Hachage | |
|---|---|
| Texte |
Correspond
Ne correspond pas
Qu'est-ce que la vérification BCrypt ?
Cet outil contrôle si un mot de passe en clair que vous saisissez et une empreinte BCrypt existante ont été engendrés à partir de la même chaîne d'origine. Il repose sur le même principe que la fonction password_verify() de PHP : il sert donc à confirmer une implémentation de connexion et à y chercher des erreurs.
Une empreinte BCrypt porte son sel en elle, si bien qu'en générer une à partir du même mot de passe produit chaque fois une chaîne différente. Une simple comparaison de chaînes ne peut donc établir la correspondance : il faut extraire le sel avec l'algorithme dédié avant de comparer, et cet outil se charge de cette étape pour vous.
Comment utiliser la vérification BCrypt
- Saisir la chaîne Tapez dans le champ le mot de passe en clair que vous voulez vérifier.
- Saisir l'empreinte Collez une empreinte BCrypt commençant par $2a$ ou $2b$.
- Appuyer sur le bouton de vérification Le résultat — correspondance ou non — s'affiche instantanément.
Astuces pour en tirer le meilleur parti
- BCrypt intègre le sel dans le hash, donc même si le hash est différent à chaque fois, il sera jugé comme une correspondance s'il a été généré à partir de la même entrée originale.
- Cet outil vérifie en utilisant le même mécanisme que
password_verify($password, $hash)de PHP. - Lors de la comparaison d'un hash récupéré d'une base de données avec un mot de passe saisi, utilisez une fonction de vérification dédiée plutôt qu'une comparaison simple de chaînes (
==) pour prévenir les attaques par synchronisation. - Les hashes commençant par
$2a$peuvent également être vérifiés comme BCrypt.
Quand la vérification BCrypt est utile
Déboguer un flux de connexion
Contrôlez directement si une empreinte stockée en base correspond au mot de passe attendu, sans passer par le code de votre application.
Confirmer le comportement après une réinitialisation
Testez si une empreinte engendrée à partir d'un nouveau mot de passe correspond bien au texte en clair prévu.
Vérifier des empreintes lors d'une migration
Confirmez à l'avance que des empreintes BCrypt reprises d'un autre système fonctionneront encore.
Glossaire BCrypt
- Sel
- Une chaîne aléatoire ajoutée au moment d'engendrer l'empreinte. C'est elle qui fait qu'un même mot de passe produit chaque fois une empreinte différente.
- password_verify()
- La fonction standard de PHP pour comparer sans risque un mot de passe en clair à une empreinte. Elle extrait le sel automatiquement, en interne.
- Attaque temporelle
- Une attaque qui déduit une information secrète de minuscules écarts de temps de traitement. Employer une fonction dédiée comparant en temps constant l'empêche.
- $2a$ / $2b$
- Les préfixes indiquant la version d'une empreinte BCrypt. $2b$ est la version ayant corrigé un défaut d'une implémentation plus ancienne ; c'est celle recommandée aujourd'hui.
Foire aux questions
$2b$ est une version avec correction de bogue de l'ancienne implémentation, et son utilisation est actuellement recommandée.
Anecdote — Derrière l'authentification : ce que sont ces quelques dixièmes de seconde lors de la connexion
Lorsque vous appuyez sur le bouton de connexion d'un service web, une partie de ces quelques dixièmes de seconde avant le résultat est le temps que BCrypt passe à calculer le hash du mot de passe. Ce délai est intentionnel — fait pour des raisons de sécurité.
Une attaque par synchronisation (Timing Attack) est un type d'attaque par canal latéral où un attaquant déduit des informations secrètes en mesurant de subtiles différences dans le temps de traitement. Lorsqu'un mot de passe est vérifié avec une simple comparaison de chaînes (==), le temps de comparaison varie légèrement selon l'endroit où les caractères cessent de correspondre. La fonction de vérification de BCrypt est conçue pour s'exécuter en temps constant, la protégeant contre cette attaque.
Dans les applications web réelles, il est recommandé de retourner une réponse dans le même délai qu'un utilisateur existe ou non, comme si l'utilisateur existait mais que le mot de passe était incorrect. Si un attaquant peut distinguer « l'utilisateur n'existe pas » de « mot de passe incorrect », cela lui donne un indice pour identifier des noms d'utilisateur valides.