Vérificateur de robustesse de mot de passe
Analyse en temps réel avec le moteur zxcvbn : les dictionnaires de mots de passe courants, les suites de touches, les séquences, les répétitions et les dates vous coûtent des points — une mesure de sécurité bien plus précise que le comptage des classes majuscules/minuscules/chiffres/symboles. Tout s'exécute localement ; votre mot de passe ne quitte jamais le navigateur.
- Moteur
- zxcvbn
- Score
- Échelle de 0 à 4
- Confidentialité
- Jamais téléversé
- Dictionnaire
- Mots de passe courants intégrés
Paramètres avancés de règles
Séparés par des virgules ou des retours à la ligne, insensible à la casse. zxcvbn détecte automatiquement les variations de casse, les substitutions leet (ex. Pa$$w0rd) et les inversions.
Comparer deux mots de passe
POURQUOI C’EST IMPORTANT
Pourquoi « majuscules + minuscules + chiffres + symboles » ne garantit pas la sécurité
P@ssw0rd! respecte les quatre contraintes de caractères et figure toujours dans les listes de fuites de données. La force réside dans la difficulté à deviner, pas dans l’arithmétique des classes de caractères.
Détection des mots de passe faibles
Un dictionnaire intégré de mots de passe courants et de mots pénalise sévèrement les entrées ; password, 123456 et P@ssw0rd sont correctement classés comme très faibles.
Détection des motifs
Les parcours de clavier, séquences directes, répétitions, dates et mots courants réduisent l’espace de devinette effectif.
Entropie effective, pas théorique
Le score estime les devinettes réelles à partir des structures détectées — non pas la taille du jeu de caractères multipliée par la longueur.
Deux scénarios d’attaque
Des estimations séparées pour le craquage GPU hors ligne et les devinettes en ligne avec limitation de débit permettent d’évaluer le coût pour l’attaquant.
Politique et liste noire personnalisées
Définissez une longueur minimale et des exigences de classes ; ajoutez des noms d’entreprise ou des noms de code de projet pour respecter les règles de mots de passe de l’entreprise.
Entièrement local
Votre mot de passe ne quitte jamais le navigateur ni ne touche un serveur ; les paramètres sont stockés uniquement dans votre localStorage.
Comprendre la force des mots de passe
Comment fonctionne le système de notation, ce que signifient les délais de craquage et ce qui fait réellement un bon mot de passe.
Comment le score 0–4 de zxcvbn est-il calculé ?
zxcvbn commence par découper le mot de passe en blocs : mots de dictionnaire (mots de passe courants, mots anglais), parcours de clavier, séquences, répétitions, dates et fragments de force brute.
Il estime le nombre de devinettes par bloc, les combine pour obtenir un nombre total et l’associe à un score entre 0 et 4. Les transformations courantes sont automatiquement prises en compte — inversion de casse, substitutions leet (@→a, 0→o), suffixes d’année — ce qui explique pourquoi P@ssw0rd obtient un mauvais score malgré sa variété de caractères.
Quelle est la différence entre entropie effective et taille du jeu de caractères ?
La taille du jeu de caractères multiplie la taille de l’alphabet par la longueur — un plafond théorique qui suppose que chaque caractère est parfaitement aléatoire, ce qui n’est quasiment jamais le cas pour les mots de passe réels.
L’entropie effective (le nombre de bits affiché ici) correspond à l’espace de devinettes réel estimé par zxcvbn après avoir détecté les mots de dictionnaire et les motifs. À longueur égale, iloveyou2024 a une entropie effective bien moins importante qu’une chaîne aléatoire.
Comment les délais de craquage sont-ils estimés — sont-ils fiables ?
Durée de craquage = nombre estimé de tentatives ÷ tentatives par seconde. Deux vitesses sont affichées : ~10 milliards/sec pour un parc de GPU hors ligne (l'attaquant dispose du hash), et ~100/heure pour une connexion en ligne limitée par débit.
Considérez-les comme des ordres de grandeur, pas comme des prédictions : la vitesse réelle dépend de l'algorithme de hachage (bcrypt/Argon2 sont des ordres de grandeur plus lents que MD5), du matériel et de la qualité du dictionnaire. Une erreur de 10× ne change rien ; un écart d'un million de fois oui.
Qu'est-ce qui fait réellement un bon mot de passe ?
Deux méthodes solides : une chaîne aléatoire de 16+ caractères générée par un gestionnaire de mots de passe, unique par site ; ou une phrase de mot de passe composée de 4+ mots sans rapport (ex : correct-horse-battery-staple) — longue et dénuée de sens.
Quel que soit votre choix, associez-le à l'authentification multifactorielle (MFA) et ne réutilisez jamais le même mot de passe sur plusieurs sites.
Mon site requiert majuscules/minuscules/chiffres/symboles — pourquoi le score est-il si bas ?
La politique de l'entreprise (longueur, classes de caractères) constitue un seuil de conformité : elle répond à la question « est-ce conforme ? ». Le score zxcvbn répond à la question « peut-il être deviné ? ». Les deux sont indépendants.
Ajouter un point d'exclamation et une année à un mot commun (motdepasse!2024) passe la plupart des vérifications de politique mais se fait craquer en quelques secondes par une attaque par dictionnaire.
Mon mot de passe est-il téléchargé quelque part ?
Non. Tout s'exécute dans votre navigateur via JavaScript — aucune requête réseau n'est envoyée avec le mot de passe, et l'outil fonctionne également hors ligne. Seule votre politique personnalisée (règles de longueur, liste noire) est stockée localement ; elle ne contient jamais de mot de passe.
Vérification de la robustesse des mots de passe dans le code
Pour ajouter des vérifications de force en temps réel à votre formulaire d'inscription ou de modification de mot de passe, utilisez un portage de zxcvbn pour votre langage :
<!-- CDN -->
<script src="https://unpkg.com/[email protected]/dist/zxcvbn.js"></script>
<script>
const res = zxcvbn('P@ssw0rd!');
console.log(res.score, res.crack_times_display);
</script>
// npm i @zxcvbn-ts/core
import { zxcvbn } from '@zxcvbn-ts/core';
const result = zxcvbn('P@ssw0rd!');
console.log(result.score, result.guesses_log10);
composer require bjeavons/zxcvbn-php
<?php
require __DIR__ . '/vendor/autoload.php';
use ZxcvbnPhp\Zxcvbn;
$zxcvbn = new Zxcvbn();
$res = $zxcvbn->passwordStrength('P@ssw0rd!');
echo $res['score'];
pip install zxcvbn
from zxcvbn import zxcvbn
res = zxcvbn('P@ssw0rd!')
print(res['score'], res['crack_times_display'])
go get github.com/nbutton23/zxcvbn-go
package main
import (
"fmt"
zxcvbn "github.com/nbutton23/zxcvbn-go"
)
func main() {
res := zxcvbn.PasswordStrength("P@ssw0rd!", nil)
fmt.Println(res.Score, res.Guesses)
}
# Add dependency
cargo add zxcvbn
use zxcvbn::zxcvbn;
fn main() {
match zxcvbn("P@ssw0rd!", &[]) {
Ok(estimate) => {
println!("score: {}", estimate.score()); // 0..4
if let Some(times) = estimate.crack_times() {
println!("offline: {:?}", times.offline_slow_hashing_1e4_per_second());
}
}
Err(err) => eprintln!("zxcvbn error: {err}"),
}
}
Les scores et estimations de motifs peuvent légèrement différer de cette page selon les versions des bibliothèques, mais les principes restent les mêmes. Pour les vérifications côté serveur, imposez également une limite de longueur et une limitation de débit afin que les saisies trop volumineuses ne puissent pas être utilisées pour consommer du CPU.
Questions fréquentes
Comment fonctionne ce vérificateur de force de mot de passe ?
Il utilise zxcvbn, l'algorithme open-source de Dropbox : le mot de passe est comparé à des dictionnaires de mots de passe courants, des listes de mots anglais, des séquences de clavier, des séquences, des dates et des motifs répétés. Le nombre moyen estimé de tentatives nécessaires à un attaquant est mappé à un score de 0 à 4 et à des estimations de durée de craquage.
P@ssw0rd semble complexe — pourquoi est-il « très faible » ?
C'est l'un des mots de passe faibles les plus emblématiques présent dans les fuites de données. Il apparaît directement dans les dictionnaires de zxcvbn, et la capitalisation ainsi que les substitutions « leet » (a→@, o→0) sont automatiquement reconnues. Des caractères variés avec une structure parfaitement prévisible sont exactement ce que les attaques par dictionnaire basées sur des règles tentent en priorité.
Quelle longueur doit avoir un mot de passe ?
Lorsqu'il est généré aléatoirement, un mot de passe de 12+ caractères résiste généralement aux attaques en ligne, tandis qu'un mot de passe de 16+ caractères résistera aux attaques hors ligne par craquage GPU pendant de nombreuses années. La longueur importe plus que la complexité des caractères : une chaîne aléatoire de 20 caractères en minuscules est plus solide qu'un mélange de quatre classes de caractères pour un mot de passe de 10 caractères.
Pourquoi distinguer les durées de craquage hors ligne et en ligne ?
Les scénarios d'attaque diffèrent : après une fuite de base de données, un attaquant peut tester des hashs localement sur des GPU à des milliards de tentatives par seconde ; contre une connexion en direct, la limitation de débit n'autorise que quelques tentatives par seconde. Le même mot de passe peut survivre un trillion de fois plus longtemps dans un scénario que dans l'autre — c'est pourquoi les deux sont affichés.
Mes saisies sont-elles stockées quelque part ?
Non. Votre mot de passe ne réside que dans la mémoire de votre navigateur et disparaît lors d'un actualisation. Seuls vos paramètres de politique personnalisés (règles de longueur, liste noire) sont conservés dans le stockage local — ils ne contiennent jamais de mot de passe.