Dans cet article
Qu'est-ce que bcrypt ?
bcrypt est une fonction de hachage de mots de passe adaptative concue en 1999 par Niels Provos et David Mazieres. Basee sur le chiffrement Blowfish, bcrypt incorpore un sel pour proteger contre les attaques par tables arc-en-ciel et un facteur de cout configurable qui controle la puissance de calcul necessaire. Cette lenteur intentionnelle est sa principale caracteristique de securite.
Contrairement aux fonctions de hachage rapides comme MD5 ou SHA-256, bcrypt est concue specifiquement pour le stockage de mots de passe. Sa nature adaptative signifie que le facteur de cout peut etre augmente au fil du temps a mesure que le materiel s'accelere.
Comment fonctionne bcrypt
Un hash bcrypt contient toutes les informations necessaires pour verifier un mot de passe dans une seule chaine. Le format est $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy.
- $2b$ — l'identifiant d'algorithme indiquant la version 2b de bcrypt
- 10$ — le facteur de cout (2^10 = 1024 tours de la fonction de derivation de cle)
- N9qo8uLOickgx2ZMRZoMye — le sel encode en Base64 sur 22 caracteres (128 bits d'aleatoire)
- IjZAgcfl7p92ldGxad68LJZdL17lhWy — la sortie de hachage encodee en Base64 sur 31 caracteres
Essayez gratuitement — sans inscription
Generer un hash bcrypt →Choisir le bon facteur de cout
Le facteur de cout determine le nombre d'iterations que bcrypt effectue en interne. Chaque increment double le temps de calcul.
L'objectif est de rendre le hachage suffisamment lent pour dissuader les attaques par force brute tout en restant assez rapide pour ne pas degrader l'experience utilisateur.
- Cout 10 — hachage en environ 100ms ; bonne base pour la plupart des applications web
- Cout 12 — hachage en environ 300-400ms ; recommande pour les applications haute securite
- Cout 14+ — hachage en 1 seconde ou plus ; generalement trop lent pour la connexion interactive
bcrypt vs autres algorithmes de hachage
Tous les algorithmes de hachage ne sont pas adaptes au stockage de mots de passe. Les fonctions rapides comme MD5 et SHA-256 peuvent calculer des milliards de hashs par seconde sur les GPU modernes.
- MD5/SHA-256 — concus pour la vitesse, pas la securite des mots de passe ; a ne jamais utiliser pour les mots de passe
- bcrypt — resistant au CPU, eprouve depuis 1999, largement supporte ; la recommandation par defaut pour le hachage de mots de passe
- Argon2 — vainqueur du Password Hashing Competition en 2015 ; resistant a la memoire ; recommande pour les nouveaux projets
Cas d'utilisation courants
bcrypt est utilise partout ou les mots de passe doivent etre stockes en securite.
- Inscription utilisateur — hasher le mot de passe avec bcrypt avant de le stocker en base de donnees
- Verification de connexion — hasher le mot de passe soumis et le comparer au hash stocke
- Migration de mots de passe — lors de la mise a niveau de MD5/SHA vers bcrypt, rehasher les mots de passe a la prochaine connexion reussie
Questions frequemment posees
Puis-je changer le facteur de cout sans reinitialiser les mots de passe ?
Oui. A chaque connexion reussie, verifiez si le hash stocke utilise un ancien facteur de cout. Si oui, rehashez le mot de passe avec le nouveau facteur et mettez a jour la base de donnees. C'est le rehachage opportuniste.
Comment verifier un mot de passe contre un hash bcrypt ?
La chaine de hash bcrypt contient la version, le facteur de cout et le sel. La fonction de verification extrait ces elements, hashe le mot de passe candidat avec les memes parametres et compare les resultats en temps constant.
Dois-je utiliser bcrypt ou Argon2 ?
Les deux sont d'excellents choix. bcrypt est eprouve depuis plus de 25 ans avec un support universel. Argon2 est plus recent et resistant a la memoire. Pour les nouveaux projets, Argon2id est recommande. Pour les projets existants, bcrypt reste parfaitement securise avec un facteur de cout de 10 ou plus.