Générateur de hachage bcrypt

Générer le hash

Plus élevé = plus lent et plus sécurisé. 12 est un bon défaut.

De temps en temps, vous avez un hachage bcrypt d’une ancienne sauvegarde et un mot de passe en clair, et vous devez savoir s’ils correspondent. Ou vous avez un mot de passe et souhaitez le hachage qu’un facteur de coût donné produirait. Cet outil fait les deux : tapez un mot de passe et il génère un nouveau hachage, collez un hachage et un candidat et il vous dit si la vérification réussit — en utilisant la même comparaison en temps constant qu’une vérification de connexion en production.

Générer ou vérifier bcrypt

  1. 1

    Choisissez un mode

    Générez un nouveau hachage à partir d'un mot de passe, ou vérifiez un mot de passe par rapport à un hachage `$2a$` / `$2b$` / `$2y$` existant.

  2. 2

    Pour générer : entrez le texte en clair et le coût

    Coût 4-14 ; 10-12 est normal. Un sel aléatoire de 16 octets est créé pour chaque hachage.

  3. 3

    Pour vérifier : collez le hachage et le texte en clair

    L'outil extrait le sel et le coût du hachage et re-hache le texte en clair avec les mêmes paramètres.

  4. 4

    Lisez le résultat

    Le mode de génération copie le hachage de 60 caractères ; le mode de vérification renvoie une correspondance verte ou une non-correspondance rouge.

Fonctionnement interne du mode vérification

Étant donné un hachage stocké comme :

$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6

Le vérificateur :

  1. Analyse la version (2b), le coût (12), le sel (les 22 premiers caractères après le coût) et le digest (les 31 derniers caractères).
  2. Relance bcrypt sur le texte en clair candidat avec le sel et le coût extraits.
  3. Compare le digest résultant à l’original en utilisant une comparaison en temps constant.

Une comparaison réussie donne true ; toute différence donne false.

Comparaison en temps constant

Comparer deux chaînes avec un == naïf renvoie dès qu’un octet diffère — un canal latéral de timing qui peut révéler le hachage chiffre par chiffre sur suffisamment d’échantillons. Les vérifications de mot de passe en production (et cet outil) utilisent une comparaison en temps constant qui examine toujours chaque octet, de sorte que le temps de décision ne dépend pas du nombre d’octets de tête qui correspondent.

Cas de diagnostic courants

Symptôme Cause probable
La vérification échoue, vous êtes sûr du mot de passe Espaces blancs ou BOM en fin d’entrée. Supprimez les deux.
La vérification échoue, version 2y Certaines bibliothèques n’aiment pas 2y ; c’est valide et compatible. Re-hachez avec 2b à l’avenir.
Hachage trop court / mal formé Ce n’est pas un hachage bcrypt. MD5 fait 32 caractères hexadécimaux, SHA-1 fait 40, bcrypt fait 60 avec des délimiteurs $.
Avertissement de non-correspondance de coût Le coût stocké est en dessous de votre minimum de politique. Re-hachez lors de la prochaine connexion réussie.

Re-hachage à la connexion

Meilleure pratique : lorsque qu’un utilisateur se connecte avec succès, vérifiez si le hachage stocké a un coût inférieur à votre politique actuelle. Si c’est le cas, re-hachez le mot de passe au nouveau coût et mettez à jour la base de données. En quelques mois, vous mettez à niveau l’ensemble de la base d’utilisateurs sans demander à quiconque de changer son mot de passe.

Ce que l’outil ne fait pas

  • Vérification en masse — Conçu pour un hachage à la fois.
  • Craquer ou brute force — Les attaques par dictionnaire ou par tables arc-en-ciel sont intentionnellement hors de portée.
  • Récupérer le texte en clair — bcrypt est unidirectionnel ; si vous avez oublié le mot de passe, le seul chemin est de réinitialiser.

Questions fréquentes

Non. Le hachage et la vérification se font dans votre navigateur. Ni le texte en clair ni le hachage ne quittent la page.

Le sel est généré aléatoirement par hachage. C’est tout l’intérêt — deux utilisateurs avec le même mot de passe obtiennent des hachages différents, contrecarrant les tables arc-en-ciel.

Oui, c’est exactement ce que fait le mode vérification : collez le hachage que vous avez, collez un mot de passe candidat, l’outil confirme ou infirme la correspondance.

Oui. Tous les variants modernes interopèrent — le digest est compatible entre les versions ; seul le tag diffère. Certains anciens hachages $2$ des systèmes des années 2000 peuvent nécessiter une bibliothèque avec un support explicite pour l’héritage.

Outils similaires