Générateur bcrypt
bcrypt est toujours l’un des choix les plus sûrs pour stocker des mots de passe. Il est délibérément lent, dérive son propre sel et s’adapte aux améliorations matérielles grâce à un paramètre de coût ajustable. Ce générateur produit un hachage bcrypt conforme aux normes à partir d’un mot de passe en clair afin que vous puissiez créer un utilisateur de test, migrer un compte entre systèmes ou comparer des valeurs avec un hachage existant stocké dans une colonne users.password.
Comment hacher un mot de passe avec bcrypt
-
1
Entrez le mot de passe en clair
Jusqu'à 72 octets — bcrypt tronque silencieusement au-delà.
-
2
Choisissez un facteur de coût
10 est le défaut actuel ; 12 est courant pour les nouveaux systèmes ; 14 est paranoïaque. Chaque +1 double à peu près le temps de hachage.
-
3
Un sel aléatoire est généré
16 octets de sel sont tirés d'un RNG cryptographique et intégrés dans la chaîne de hachage résultante.
-
4
Copiez le hachage
La sortie est une chaîne auto-descriptive comme `$2b$12$...` qui inclut la version, le coût, le sel et le digest.
Anatomie d’un hachage bcrypt
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
| | | |
| | sel (22 caractères Base64) digest (31 caractères Base64)
| coût (2 chiffres, 4-31)
version (2a, 2b, 2y — tous bcrypt)
La chaîne entière fait 60 caractères. Les colonnes typées VARCHAR(60) ou CHAR(60) sont le schéma standard.
Recommandations sur le facteur de coût
| Coût | Temps approximatif par hachage (CPU 2024) | Cas d’utilisation |
|---|---|---|
| 10 | ~80 ms | Défaut hérité, encore acceptable |
| 12 | ~300 ms | Base recommandée actuelle |
| 13 | ~600 ms | Applications à sécurité élevée |
| 14 | ~1.2 s | Paranoïaque ; délai de connexion notable |
Chaque incrément double le facteur de travail. Si la latence de connexion sous 500 ms est critique, restez à 10-12.
Octet de version : 2a vs 2b vs 2y
$2a$— Spécification originale de 1999. La plupart des bibliothèques émettent des hachages2a.$2b$— Révision de 2014 corrigeant un bug de troncature dans crypt_blowfish. Préféré pour les nouveaux hachages.$2y$— Tag spécifique à PHP, fonctionnellement équivalent à$2b$.
Les trois vérifient les uns contre les autres ; seul le tag dans la chaîne de hachage diffère.
Ce que bcrypt protège contre
- Tables arc-en-ciel — Sel unique par hachage empêche les recherches pré-calculées.
- Cracking GPU/ASIC — L’expansion de clé de Blowfish est liée à la mémoire et hostile aux GPU. Pas aussi hostile aux GPU qu’Argon2, mais toujours lent à forcer.
- Fuites de base de données — Le texte en clair n’est jamais récupérable à partir du hachage sans force brute.
Ce que bcrypt ne protège PAS : mots de passe faibles (utilisez une longueur minimale et vérifiez les mots de passe contre les listes de fuites connues), bourrage d’identifiants (utilisez un second facteur), hameçonnage.
Limite de 72 octets
bcrypt utilise uniquement les 72 premiers octets du mot de passe. Les entrées plus longues sont tronquées silencieusement, ce qui est la même raison pour laquelle de nombreuses bibliothèques recommandent désormais de pré-hacher le mot de passe avec SHA-256 avant de le fournir à bcrypt. Les alternatives modernes (Argon2, scrypt) n’ont pas de telle limite.
Questions fréquentes
Oui pour le stockage des mots de passe, à coût ≥ 12. OWASP le considère toujours comme un algorithme acceptable. Argon2id est le choix préféré pour les nouveaux systèmes, mais migrer des hachages bcrypt hérités est une préoccupation de faible priorité.
Parce que le sel est généré aléatoirement par hachage. La vérification prend le sel du hachage stocké, re-hache le mot de passe soumis avec, et compare.
La plupart des bibliothèques ne l’exposent pas, et pour une bonne raison — des sels prévisibles contrecarrent l’objectif. Utilisez le sel généré par la bibliothèque ; c’est le chemin sécurisé.
Oui — le facteur de travail est symétrique. Vérifier un hachage de coût 14 prend 16 fois plus de temps que de vérifier un coût 10. Ajustez en tenant compte de votre débit de connexion.
Outils similaires
Encodeur de chiffre A1Z26
Encodez du texte en utilisant le chiffre A1Z26 (A=1, B=2, ... Z=26) ou décodez une séquence de nombres en lettres, avec un séparateur personnalisable.
Chiffrement / Déchiffrement AES
Chiffrez et déchiffrez du texte peu sensible avec des chiffrements AES OpenSSL. La phrase de passe est hachée en SHA-256 et la sortie Base64 contient IV plus texte chiffré.
Encodeur de chiffre Atbash
Encodez ou décodez du texte avec le chiffre Atbash, une substitution hébraïque qui associe A-Z à Z-A. La même opération chiffre et déchiffre.
Générateur de hachage bcrypt
Générez des hachages bcrypt ou vérifiez un mot de passe en clair par rapport à un hachage bcrypt existant. Générez et vérifiez côte à côte dans un seul outil.
Encodeur et décodeur Base85
Encodez et décodez Base85 dans les variantes Adobe Ascii85 (PostScript/PDF) ou Z85 (ZeroMQ). Plus compact que Base64 pour les données binaires.
Encodeur et décodeur Base32
Encodez et décodez des chaînes Base32 en utilisant l'alphabet RFC 4648. Utile pour les secrets TOTP, les jetons insensibles à la casse et les identifiants saisis par des humains.