Générateur Bcrypt

5 sur 2 évaluations
Générateur Bcrypt

Le Générateur Bcrypt est un outil gratuit qui crée, à partir de n'importe quelle chaîne de caractères, un hachage bcrypt destiné au stockage sécurisé des mots de passe.

Qu'est-ce que bcrypt, et est-il toujours sûr ?

Bcrypt est un algorithme de hachage de mots de passe qui reste adapté à leur stockage lorsqu'un coût approprié est configuré, même si les systèmes récents privilégient souvent Argon2id. Niels Provos et David Mazières ont conçu bcrypt en 1999. Ils se sont appuyés sur le processus de génération des clés du chiffrement Blowfish afin de rendre chaque tentative de mot de passe volontairement coûteuse.

Le hachage est irréversible. Pour vérifier un mot de passe, une application hache donc une valeur candidate avec les paramètres enregistrés, au lieu de récupérer l'original. Contrairement aux algorithmes généralistes comme SHA-3, bcrypt produit un enregistrement autonome, encodé et de longueur fixe, qui contient sa version, son coût, son sel et sa somme de contrôle.

Un enregistrement bcrypt standard compte 60 caractères ASCII. Sa somme de contrôle représente 184 bits et occupe 31 caractères dans l'encodage de type Base64 propre à bcrypt. Bcrypt n'est pas considéré comme compromis sur le plan cryptographique, mais son ancienneté entraîne une limite : les implémentations traditionnelles ne traitent pas plus de 72 octets en entrée. Argon2id offre également une protection fondée sur l'utilisation intensive de la mémoire, absente de bcrypt.

Schéma : un texte d'entrée passe par la fonction Bcrypt et produit une empreinte de longueur fixe, impossible à inverser

Comment utiliser le Générateur Bcrypt ?

Saisis la chaîne à hacher, lance le générateur, puis copie la valeur affichée dans le champ de résultat Hachage Bcrypt. Enregistre le résultat complet, sans extraire uniquement la somme de contrôle finale.

  1. Utilise exactement le mot de passe ou la chaîne de test voulue, en respectant les majuscules, les espaces et la ponctuation.
  2. Génère le résultat bcrypt.
  3. Copie les 60 caractères, y compris l'indicateur de version initial et le coût.
  4. Enregistre le résultat dans la colonne de ta base de données réservée aux hachages de mots de passe.
  5. Lors de la connexion, utilise la fonction de vérification bcrypt de ta plateforme. Ne génère pas un nouveau hachage pour le comparer directement sous forme de texte.
L'outil Générateur Bcrypt sur digily.link, avec son formulaire de saisie

Bcrypt utilise normalement un nouveau sel aléatoire pour chaque hachage. La même entrée peut donc produire deux enregistrements différents si elle est hachée deux fois, et tous deux permettront de la vérifier. Ce comportement est normal et évite que des mots de passe identiques aient les mêmes valeurs enregistrées.

Le traitement est effectué sur le serveur. Ton entrée lui est transmise via HTTPS et n'est pas stockée. Avant de saisir un véritable mot de passe utilisé en production dans un service en ligne tiers, vérifie que cette pratique respecte la politique de sécurité de ton organisation.

Peut-on déchiffrer ou inverser un hachage bcrypt ?

Non, un hachage bcrypt ne peut pas être déchiffré, car il ne s'agit pas de données chiffrées et il ne contient aucune clé de déchiffrement. En pratique, la seule méthode d'attaque consiste à essayer différents mots de passe et à vérifier chaque tentative par rapport au hachage enregistré.

Bcrypt ralentit ces tentatives grâce à son coût configurable. Il ne peut toutefois pas sécuriser un mot de passe court, courant ou déjà divulgué, et un attaquant déterminé peut toujours retrouver une entrée faible. Le sel empêche de réutiliser une même table précalculée sur de nombreux comptes, mais il n'est pas secret et figure dans l'enregistrement stocké.

Exemple de résultat produit par l'outil Générateur Bcrypt

Comment lire un résultat bcrypt ?

Un résultat bcrypt suit généralement le format modular crypt. Sa structure peut, par exemple, être représentée ainsi : $2y$12$[22-character salt][31-character checksum]. Il s'agit d'une illustration du format, et non du hachage d'un mot de passe précis.

Partie Longueur habituelle Rôle
Indicateur de version 4 caractères Identifie une variante de bcrypt, comme $2y$ ou $2b$.
Coût 3 caractères Contient le coût à deux chiffres, suivi d'un séparateur.
Sel 22 caractères Encode un sel aléatoire de 128 bits.
Somme de contrôle 31 caractères Encode la somme de contrôle bcrypt de 184 bits.

Conserve toutes ces parties ensemble. Modifier un caractère, tronquer la valeur ou l'enregistrer dans une colonne trop courte fera normalement échouer la vérification. L'indicateur de version peut varier entre des bibliothèques compatibles. Les applications doivent donc utiliser des API reconnues de gestion des mots de passe, plutôt que d'analyser et de reconstruire elles-mêmes l'enregistrement.

Quand faut-il utiliser bcrypt ?

Bcrypt convient au hachage des mots de passe dans les systèmes qui le prennent déjà en charge, en particulier lorsqu'il faut préserver la compatibilité avec une base de données ou un framework existant. Il est volontairement lent et utilise un sel, ce qui le rend inadapté aux sommes de contrôle générales de fichiers et aux identifiants de déduplication.

  • Usages adaptés : mots de passe d'applications, tests de migration, vérification de la taille des champs d'une base de données et reproduction d'un environnement de développement compatible avec bcrypt.
  • Préfère Argon2id pour un nouveau système de mots de passe si la plateforme le prend en charge et si ses paramètres de mémoire peuvent être correctement gérés.
  • Utilise plutôt SHA-3 pour contrôler l'intégrité des fichiers, créer des empreintes de contenu ou effectuer une déduplication. Le Générateur SHA-3/384 et le Générateur SHA-3/512 produisent des condensats généralistes, et non des enregistrements de mots de passe.
  • N'utilise pas bcrypt pour les signatures numériques, l'authentification des messages, le chiffrement ou le stockage de données qui devront être récupérées ultérieurement.

Les espaces, la ponctuation et les chiffres sont traités comme des données d'entrée, et non ignorés. Les caractères accentués et non latins sont encodés en octets avant le traitement par bcrypt. Les deux systèmes doivent donc produire exactement les mêmes octets, notamment en utilisant un encodage de caractères et une normalisation Unicode cohérents. La limite de 72 octets est particulièrement importante dans ce cas, car un caractère Unicode peut occuper plusieurs octets. Une entrée vide peut techniquement être hachée, mais un mot de passe vide n'offre aucune résistance réelle aux tentatives de découverte.

Questions fréquentes

Quel espace prévoir en base de données pour un hachage bcrypt ?

Prévois au moins 60 caractères ASCII pour un enregistrement bcrypt classique. Un champ légèrement plus large peut faciliter une future migration vers d'autres algorithmes de hachage de mots de passe. En revanche, une colonne binaire n'est pas nécessaire pour la forme encodée standard.

Peut-on migrer des hachages SHA existants vers bcrypt ?

Tu ne peux pas convertir un condensat SHA existant en hachage bcrypt du mot de passe d'origine sans connaître ce mot de passe. Une méthode de migration courante consiste à vérifier l'ancien hachage lors de la prochaine connexion de l'utilisateur, puis à hacher le mot de passe fourni avec bcrypt ou Argon2id et à remplacer l'ancien enregistrement.

Avant d'enregistrer un résultat, vérifie que la valeur complète de 60 caractères a bien été copiée, que le champ de la base de données ne la tronque pas et que l'application destinataire prend en charge l'indicateur de version présent dans l'enregistrement.

Outils populaires