À quoi ça sert
bcrypt est une fonction de hachage de mots de passe conçue pour être lente. Contrairement à MD5 ou SHA-256, calculables des milliards de fois par seconde, bcrypt a un coût réglable qui rend chaque essai coûteux pour un attaquant ayant volé votre base de données. C’est toujours l’un des choix les plus répandus pour stocker des mots de passe, avec Argon2 et scrypt.
Cet outil fait deux choses :
- Hacher : transformer un mot de passe en hachage bcrypt avec le coût et le préfixe de version choisis.
- Vérifier : contrôler si un mot de passe correspond à un hachage bcrypt existant, par exemple issu de votre base ou du fichier de données initiales d’un framework.
Mode d’emploi
- Saisissez un Mot de passe ou cliquez sur Exemple.
- En mode Hacher, choisissez le Coût et la Version. Le hachage s’affiche aussitôt ; cliquez sur Nouveau sel pour en obtenir un autre.
- En mode Vérifier, collez le Hachage bcrypt à vérifier. Le résultat indique si le mot de passe correspond.
Lire un hachage bcrypt
Un hachage comme $2b$10$./3kakECWB0QfIgYzIqciuv449HNnwGbgExtJQQwQ1MofonthOdoK comporte quatre parties : la version 2b, le coût 10 (2¹⁰ tours de préparation de clé), un sel de 22 caractères et une somme de contrôle de 31 caractères. Tout ce dont le serveur a besoin pour vérifier plus tard un mot de passe tient dans cette chaîne : vous ne stockez que le hachage.
Limites à connaître
bcrypt ne lit que les 72 premiers octets d’un mot de passe. Les mots de passe plus longs, ou contenant beaucoup de caractères non ASCII (2 à 4 octets chacun en UTF-8), sont tronqués sans prévenir. L’outil vous avertit dans ce cas. Pour accepter de très longues phrases de passe, appliquez d’abord un pré-hachage ou envisagez Argon2id.
FAQ
› Pourquoi le même mot de passe donne-t-il un hachage différent à chaque fois ?
Chaque hachage utilise un nouveau sel aléatoire de 16 octets, stocké dans le hachage lui-même. C'est voulu : deux mots de passe identiques ne donnent pas le même hachage. Pour contrôler un mot de passe, utilisez Vérifier au lieu de comparer des chaînes.
› Quel coût choisir ?
Choisissez le coût le plus élevé que votre serveur peut supporter à chaque connexion, en général 10 à 12 aujourd'hui. Chaque palier double le travail. Mesurez sur votre matériel de production ; 100 à 300 ms par hachage est un objectif courant.
› Quelle différence entre $2a$, $2b$ et $2y$ ?
C'est le même algorithme. $2b$ est le préfixe actuel d'OpenBSD, $2y$ celui qu'écrit password_hash de PHP et $2a$ l'ancien. La plupart des bibliothèques acceptent les trois : prenez celui qu'attend votre système.
› Mon mot de passe est-il envoyé quelque part ?
Non. Le hachage et la vérification se font dans votre navigateur. Le mot de passe et le hachage vérifié restent uniquement en mémoire sur cette page ; ils ne sont ni enregistrés ni ajoutés aux liens de partage.