Retour aux outils

Générateur et vérificateur de hash Bcrypt

Transformez un mot de passe en hash bcrypt $2b$, ou vérifiez un mot de passe par rapport à un hash que vous avez déjà. Le hachage s'exécute dans un Web Worker à l'intérieur de votre navigateur — rien de ce que vous tapez n'est envoyé où que ce soit.

Entrée

Mot de passe et coût

Un nouveau sel de 16 octets est tiré pour chaque hash, si bien que le même mot de passe donne un hash différent à chaque fois. C'est le but d'un sel, pas un bug.

10
4 · rapide14 · lent

Le coût 10 signifie 2^10 = 1,024 tours de configuration de clé. Chaque cran supplémentaire double le travail — pour quelqu'un qui force un fichier de mots de passe volé, mais aussi pour votre propre serveur à chaque connexion. La plupart des systèmes en production se situent entre 10 et 12.

Les trois préfixes produisent des octets de hash identiques pour les mots de passe de moins de 72 octets ; seul le label diffère. Le crypt() fourni avec PHP ne reconnaît pas $2b$, donc un hash $2b$ fera échouer password_verify() silencieusement. Choisissez $2y$ pour PHP.

Le hachage s'exécute dans un Web Worker à l'intérieur de cet onglet. Le mot de passe n'est jamais envoyé à Wespner ni à qui que ce soit d'autre — il n'y a aucune requête pour l'envoyer.

Résultat

hash bcrypt

Cliquez sur « Générer le hash ».

Coût, mesuré ici

Ce que ce réglage vous coûte

Estimation : un hash est chronométré dans cet onglet au coût 8, et chaque autre coût en est extrapolé en doublant. Votre propre matériel et navigateur déterminent le chiffre.

Une vérification ici
mesure en cours…
Tentatives par seconde
liste de 14,344,391 mots

Ces chiffres correspondent à un seul thread JavaScript. Un vrai attaquant exécute du code natif sur une baie de GPU et va plusieurs ordres de grandeur plus vite — c'est exactement pour cela que le facteur de coût doit être inconfortable plutôt que pratique. Le même curseur détermine aussi combien de CPU chacune de vos propres connexions consomme.

Lecture de la chaîne

Ce que signifient les 60 caractères

$2b$12$LQv3c1yqBWVHxkd0LHAkCOYUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

version
$2b$
coût
12 → 2^12 = 4,096 tours
sel (22)
LQv3c1yqBWVHxkd0LHAkCO
hash (31)
YUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

Les deux blocs utilisent l'alphabet base64 propre à bcrypt, qui commence par ./ et place les chiffres à la fin — ce n'est pas du base64 standard, et le décoder comme tel donne de mauvais octets. Cela, ajouté à la répartition 22/31, est un moyen rapide de vérifier qu'une chaîne est bien un hash bcrypt et pas quelque chose qui y ressemble seulement.

Choisir un algorithme

bcrypt, scrypt ou Argon2 ?

Cet outil est volontairement dédié à bcrypt uniquement. Voici quand c'est le bon choix, et quand ça ne l'est pas.

bcrypt
Coûteux en CPU, 1999

Lent par conception, mais ne s'appuie que sur du temps CPU et 4 Ko de mémoire fixes. Les GPU et FPGA le parallélisent bien mieux que les conceptions plus récentes. Ça reste un choix tout à fait respectable, pris en charge littéralement partout, et sa limite de 72 octets pour le mot de passe est son piège le plus surprenant.

scrypt
Coûteux en mémoire, 2009

Ajoute un coût mémoire réglable, si bien qu'un attaquant a besoin de RAM par tentative, pas seulement de cœurs. Plus difficile à paralléliser à bas coût que bcrypt.

Argon2id
Recommandation actuelle

Vainqueur de la Password Hashing Competition de 2015 et ce que l'OWASP recommande désormais pour les nouveaux systèmes : des réglages séparés pour le temps, la mémoire et le parallélisme, la variante id résistant à la fois aux attaques par GPU et par canal auxiliaire. Si vous partez de zéro et que votre plateforme le propose, utilisez-le. Si vous maintenez un système qui stocke déjà des hashs $2y$, bcrypt à un coût raisonnable n'est pas une urgence — rehachez plutôt à la prochaine connexion.

Preuve

Vérifiez cette page par rapport aux vecteurs de test publiés

Un outil de hachage qui demande votre confiance devrait pouvoir se vérifier. Voici les vecteurs bcrypt de référence utilisés par les implémentations dérivées d'OpenBSD ; la page recalcule chacun d'eux à partir de son propre sel et les compare caractère par caractère, puis hache et revérifie un mot de passe jetable à deux facteurs de coût.

Le lot exécute 6 vecteurs publiés plus deux allers-retours.

Vous gérez votre propre serveur de jeu ?

Serveurs de jeu Wespner avec protection DDoS, disques NVMe et activation en quelques minutes.

Découvrir l'hébergement