bcrypt Hachage et Vérification
ChiffreHachez un mot de passe avec bcrypt (coût adaptatif), ou vérifiez un texte en clair par rapport à un hachage $2a$ / $2b$ existant. Coût réglable, chronométrie calibrée — entièrement dans votre navigateur.
Les URL distantes ne sont pas récupérées ; collez votre JSON directement.
⚠ Un coût plus élevé est plus lent et plus sûr
Sur cette page
Qu’est-ce que bcrypt ?#
bcrypt est une fonction de hachage de mots de passe conçue spécifiquement pour être lente délibérément. Là où un hachage rapide comme SHA-256 est conçu pour traiter des mégaoctets par seconde, bcrypt est conçu pour coûter du temps réel par tentative unique — afin qu’un attaquant qui vole une base de données de hachages de mots de passe ne puisse pas essayer des milliards de tentatives à bas coût. C’est la réponse standard à « comment dois-je stocker les mots de passe utilisateur » : hachez-les avec bcrypt, pas avec un SHA-256 brut.
Deux choses rendent bcrypt adapté à cette tâche. Premièrement, il possède un facteur de coût réglable qui fait monter le travail de façon exponentielle — augmenter le coût de 1 double environ le temps par hachage, donc on peut devancer le matériel en tournant un simple réglage. Deuxièmement, il intègre un sel aléatoire dans chaque hachage, donc des mots de passe identiques hachent vers des valeurs complètement différentes et une table précalculée bâtie pour une base est inutile contre une autre. Le sel et le coût sont tous deux portés par la chaîne de sortie, donc la vérification ne nécessite rien d’autre que le mot de passe et le hachage.
Cette page effectue les deux opérations : hacher un mot de passe en une chaîne bcrypt, et vérifier un mot de passe contre un hachage existant. Pour garder la page réactive, le hachage à un coût de 12 ou au-dessus est délégué à un Web Worker, donc le calcul lourd ne fige jamais l’interface.
Mode d’emploi#
- Choisissez un mode : Hacher (produire une chaîne bcrypt depuis un mot de passe) ou Vérifier (vérifier un mot de passe contre un hachage existant).
- Saisissez le mot de passe. Cliquez sur l’icône œil pour le révéler pendant la frappe ; il est masqué par défaut. L’UTF-8 est accepté, y compris les emoji et les écritures non latines.
- En mode Hacher, réglez le curseur de coût (4–14, défaut 12). Plus élevé est plus lent et plus fort. Un avertissement apparaît une fois le coût assez haut pour prendre un temps perceptible.
- En mode Vérifier, collez le hachage existant dans le champ qui apparaît. Le coût est lu automatiquement depuis le hachage lui-même — vous ne le réglez pas.
- Cliquez sur le bouton principal. En mode Hacher, la sortie est la chaîne bcrypt ; en mode Vérifier, la sortie est un verdict clair de correspondance ou non-correspondance, plus une indication du temps écoulé qui vous aide à juger le coût sur votre propre matériel.
Principales fonctionnalités#
- Coût réglable, 4–14. Le défaut de 12 est la recommandation moderne ; chaque palier double environ le travail, donc vous pouvez suivre le rythme du matériel plus rapide au fil des années.
- Délégation à un Worker à coût élevé. Le coût 12 et au-dessus s’exécute dans un Web Worker afin que la page reste réactive ; si les workers sont bloqués, l’outil se replie transparentement sur le fil principal avec le même résultat.
- Sel intégré. Chaque hachage reçoit un sel aléatoire frais encodé dans la sortie, donc le même mot de passe ne hache jamais deux fois vers la même chaîne.
- Vérification avec coût automatique. Le facteur de coût est extrait du hachage que vous collez, donc il n’y a pas de décalage entre la façon dont un mot de passe a été haché et la façon dont il est vérifié.
- Zéro téléversement. Le hachage et la vérification se font localement ; le mot de passe ne quitte jamais la page.
Exemple détaillé#
Voici un hachage réel de hunter2 au coût 12, produit par cette page même. Comme le sel est fraîchement aléatoire, hacher hunter2 à nouveau vous donnera une chaîne différente — mais celle-ci est authentique et vérifiable : collez-la en mode Vérifier, saisissez hunter2, et le verdict est « correspond ».
$2b$12$DG/IWIDBmJlywamLdGno2.guEH5lGnQ1OTULdIGN8BH1vqiLIGzjy
Lu champ par champ :
$2b$— la variante bcrypt (bcryptjs émet$2b$; la vérification accepte aussi$2a$,$2x$,$2y$).12— le facteur de coût, signifiant2^12passes d’expansion de clé.- les 22 caractères suivants — le sel aléatoire.
- les 31 derniers caractères — le hachage dérivé.
Basculez sur Vérifier, déposez le hachage ci-dessus dans le champ de hachage existant, saisissez hunter2, et le verdict est correspond. Saisissez Hunter2 à la place et c’est ne correspond pas — bcrypt est sensible à la casse, et un seul mauvais caractère inverse le résultat. L’indication de temps écoulé affichée à côté est le coût réel d’une vérification au coût 12 sur votre machine.
FAQ#
Quel coût devrais-je choisir ?#
12 est un défaut solide pour les nouveaux systèmes aujourd’hui — il prend environ quelques centaines de millisecondes sur un matériel typique, ce qui est indolore pour une vraie connexion mais douloureux pour du devinement en masse. Montez à 13 ou 14 pour des cibles à haute valeur où une connexion légèrement plus lente est acceptable. La règle clé est de réajuster à la hausse au fil des ans à mesure que le matériel s’améliore, parce que le coût de bcrypt évolue de façon exponentielle : chaque incrément de 1 double environ le temps.
Pourquoi hacher deux fois le même mot de passe donne-t-il des résultats différents ?#
Parce que bcrypt génère un sel aléatoire frais à chaque fois et l’intègre dans la sortie. Les deux hachages ne se ressemblent pas du tout, et pourtant les deux vérifient le même mot de passe. C’est tout l’intérêt du salage — il empêche un attaquant de reconnaître des mots de passe répétés ou de réutiliser une table précalculée.
Puis-je vérifier un hachage généré ailleurs ?#
Oui, tant que c’est une chaîne bcrypt bien formée ($2a$, $2b$, $2x$ ou $2y$). Collez-le dans le champ de hachage existant en mode Vérifier ; l’outil lit le coût et le sel depuis le hachage lui-même. Les hachages exportés depuis bcrypt de Node, password_hash de PHP, ou passlib de Python fonctionnent tous ici.
bcrypt est-il meilleur que SHA-256 pour les mots de passe ?#
Pour stocker des mots de passe de connexion, oui — sans l’ombre d’un doute. SHA-256 est rapide, ce qui est précisément la mauvaise propriété pour un hachage de mot de passe stocké : un attaquant disposant du hachage peut essayer des milliards de tentatives par seconde sur un GPU. bcrypt est délibérément lent et salé, ce qu’exige le stockage de mots de passe. Utilisez SHA-256 pour l’intégrité et les signatures ; utilisez bcrypt (ou ses cousins Argon2/scrypt) pour les mots de passe humains.