Générez des hashs bcrypt salés pour les mots de passe et vérifiez un texte en clair contre un hash existant, le tout dans votre navigateur.
Générez des hashs bcrypt salés pour les mots de passe et vérifiez un texte en clair contre un hash existant, le tout dans votre navigateur. Générez des hashs bcrypt salés pour les mots de passe et vérifiez un texte en clair contre un hash existant, le tout dans votre navigateur.
Hash bcrypt généré
Contexte
Ce qu'est bcrypt et pourquoi il compte
bcrypt est une fonction de hachage de mot de passe adaptative conçue par Niels Provos et
David Mazieres en 1999. Contrairement aux digests rapides comme MD5 ou SHA-256, bcrypt
coûte délibérément du temps CPU : chaque hash exécute le chiffre Blowfish à travers un
nombre configurable de rounds, et le travail double à chaque incrément du facteur de coût.
Ce ralentissement est ce qui rend les attaques par dictionnaire et force brute hors ligne
coûteuses. Une implémentation bcrypt correcte intègre aussi un sel aléatoire de 128 bits
dans la chaîne de sortie, si bien que deux hashs du même mot de passe sont toujours
différents et les tables arc-en-ciel sont inutiles contre lui.
Comment lire un hash bcrypt
Un hash bcrypt ressemble à $2b$12$e0.6kJ8a5X8u5Yp3qR5E0e9dF4z3W2c1v0b9n8m7l6k5j4h3g2f1. Les
parties après les signes dollar portent la version de l'algorithme, le coût et le sel :
$2b$ -- la révision de l'algorithme. $2a$ et $2y$ sont des variantes plus anciennes avec
des différences subtiles de gestion du bug de signe 8 bits ; $2b$ est la recommandation
actuelle et ce que émet bcryptjs.
12 -- le facteur de coût. 2^12 = 4096 rounds du key schedule. Chaque +1
double le temps ; 10-12 est une valeur par défaut raisonnable pour une connexion interactive,
tandis que 12-14 convient aux identifiants stockés.
Les 53 caractères restants contiennent un sel base64 de 22 caractères (128 bits) plus
une somme de contrôle de 31 caractères (184 bits). Toute la chaîne est un enregistrement
autonome : le vérificateur relit la version, le coût et le sel depuis le hash et
relance la dérivation pour comparer.
Comment utiliser cet outil
Tapez un mot de passe dans l'entrée, choisissez un facteur de coût, et appuyez sur Hacher. Le
hash généré apparaît dans la zone de sortie et est aussi placé dans le champ de vérification. Pour
vérifier un hash existant, collez-le dans le champ de vérification et tapez le mot de passe
candidat dans l'entrée : la page compare immédiatement et affiche une coche verte ou une
croix rouge. Comme la comparaison se fait avec bcrypt.compareSync, elle ne révèle jamais à
quel point une mauvaise supposition était proche -- chaque tentative est hachée intégralement
avant que le résultat ne soit décidé.
Notes et limites de sécurité
bcrypt tronque l'entrée à 72 octets : les mots de passe plus longs sont coupés silencieusement, si
bien que deux mots de passe partageant les 72 premiers octets comparent égaux. Si vous avez
besoin de saisies plus longues, pré-hachez avec SHA-256 (encodé hex) et hachez ce digest avec
bcrypt. bcrypt est un algorithme délibérément légèrement consommateur en mémoire -- il résiste
moins bien aux fermes GPU que des conceptions à mémoire dure comme Argon2 ou scrypt, mais sa
table de 4 Ko et son état de 64 octets rendent toujours le craquage ASIC peu attractif. Pour les
systèmes tout neufs, Argon2id est souvent un meilleur choix ; bcrypt reste une excellente option
largement prise en charge pour la compatibilité héritée et pour les cas où l'environnement
d'exécution ne peut pas fournir Argon2. Cette page s'exécute entièrement dans votre navigateur :
le mot de passe et le hash ne quittent jamais votre appareil, et vous pouvez inspecter le chemin
de code (bcryptjs MIT/BSD) intégré dans public/assets.
Questions fréquemment posées
Pourquoi le même mot de passe produit-il un hash différent à chaque fois ?
Un sel aléatoire de 128 bits est généré pour chaque hash et intégré à la sortie. Le vérificateur relit le sel depuis le hash, donc l'exactitude n'est pas affectée, mais des entrées identiques ne produisent jamais de sorties identiques.
Quel facteur de coût dois-je utiliser ?
Pour les connexions interactives, 10-12 est une bonne valeur par défaut. Pour les identifiants stockés, vous pouvez vouloir 12-14. Des coûts plus élevés sont plus sûrs mais plus lents ; choisissez la plus grande valeur que votre serveur peut supporter par connexion.
bcrypt est-il encore recommandé en 2026 ?
Oui. bcrypt reste largement déployé et est considéré sûr utilisé avec un coût de 10+. Pour les systèmes tout neufs, Argon2id ou scrypt à mémoire dure sont souvent préférés, mais bcrypt est un choix éprouvé, particulièrement quand ceux-ci ne sont pas disponibles.
Pourquoi bcrypt est-il plus lent que SHA-256 ?
C'est tout le propos. SHA-256 est conçu pour être rapide, ce qui permet aux attaquants d'essayer des milliards de suppositions par seconde. Le key schedule et le sel coûteux de bcrypt forcent les attaquants à passer un vrai temps par supposition, rendant les attaques hors ligne impraticables.
Que signifie la limite des 72 octets pour mes mots de passe ?
bcrypt ignore tout après le 72e octet. Deux mots de passe de plus de 72 octets partageant le même préfixe vérifieront identiquement. Pour prendre en charge des secrets plus longs, hachez-les d'abord avec SHA-256 (en hex) et hachez le digest avec bcrypt.
Mon mot de passe est-il envoyé à un serveur ?
Non. Tout s'exécute localement dans votre navigateur avec la bibliothèque bcryptjs intégrée. Vous pouvez vous déconnecter du réseau après le chargement de la page et cela continuera de fonctionner.