Cryptographie

Validation BCrypt

Valide si le hachage a été calculé à partir du texte saisi.


Hachage
Texte

Correspond

Ne correspond pas

Tips

  • 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.

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.