Générer un mot de passe sécurisé en ligne : bonnes pratiques 2026

Générer un mot de passe sécurisé en ligne : bonnes pratiques 2026

Longueur, entropie, symboles : générez un mot de passe robuste avec Web Crypto, dans votre navigateur, et sachez ce que l'outil ne garantit pas.

01.10.2026
14 min de lecture
Partager cet article:
Mot de passe
Sécurité
tools-dev
Tutoriel

Un bon mot de passe est long, aléatoire et jamais réutilisé

Un mot de passe faible ne cède pas faute de symboles : il cède parce qu'un humain l'a choisi. Le générateur de mot de passe en ligne de FastMinify tire chaque caractère au hasard avec crypto.getRandomValues (Web Crypto) dans votre navigateur — jamais Math.random — et les valeurs générées ne sont ni envoyées ni stockées. Il règle la longueur (8 à 128), quatre jeux de caractères, l'exclusion des glyphes ambigus et une quantité jusqu'à 50. Il n'affiche pas de jauge de force, ne propose pas de phrase de passe et ne retient rien. Ce guide explique pourquoi la longueur pèse plus que la complexité, ce que chaque réglage change en bits, où l'outil s'arrête (aucune garantie du type « au moins un chiffre »), et comment stocker ensuite un mot de passe côté serveur avec un hash lent plutôt qu'un hash rapide — l'outil bcrypt sert à comprendre les paramètres sur des fixtures. La page vit sur le hub des utilitaires développeur, à côté du générateur d'UUID et du testeur de regex, et reste accessible depuis le hub des outils de sécurité.

Longueur de 8 à 128 caractères, au curseur ou au clavier ; 16 par défaut
Quatre jeux de caractères : a–z, A–Z, 0–9 et symboles. Au moins un doit rester actif, sinon l'outil affiche une erreur
Symboles fixes : !@#$%^&*()-_=+[]{}|;:,.<>? — 26 caractères, sans espace, sans jeu personnalisé
« Exclure ambigus » (actif par défaut) retire 0, O, o, I, l et 1 du jeu de tirage
Quantité de 1 à 50 : la liste numérotée se régénère dès qu'une option change, avec copie de toute la liste ou d'une seule ligne
Tirage Web Crypto avec rejet des valeurs qui biaiseraient la distribution. Sans crypto.getRandomValues, l'outil affiche une erreur au lieu d'un repli faible

Où le générateur local suffit, et où prendre le relais

Les usages adaptés

Un mot de passe ou un secret de test à produire vite, sans que la valeur transite par un serveur.

Un mot de passe de compte à ranger aussitôt dans un gestionnaire : 16 caractères, quatre classes, ambigus exclus
Un secret de fixture ou de staging (base de données de test, compte de démonstration), jusqu'à 50 d'un coup
Un mot de passe à dicter ou à recopier depuis un écran : gardez « Exclure ambigus » actif
Une cible qui refuse certains symboles : coupez « Symboles » et passez à 20 caractères ou plus
Un jeu de valeurs pour tester une politique de validation (longueurs 8, 12, 64 et 128)
Ce qui doit se faire ailleurs

Générer n'est qu'un maillon : le stockage serveur (l'outil bcrypt), la détection de fuite (le scanner de secrets) et l'authentification de messages (le guide hash et HMAC) ont leurs propres outils.

Conserver le mot de passe : un gestionnaire dédié. L'outil n'enregistre rien ; recharger la page produit une autre liste
Stocker côté serveur : un hash lent et salé (bcrypt, Argon2). L'outil bcrypt (coût 4 à 14, avertissement à 72 octets) sert à comprendre et à produire des fixtures, pas à construire une authentification
Vérifier qu'un mot de passe n'a pas déjà été commité : scanner le diff avant le commit, et faire une rotation immédiate si le secret est déjà poussé
Signer un webhook ou authentifier un message : un HMAC avec une clé secrète, pas un mot de passe
Contrôler qu'un mot de passe choisi par un humain ne figure pas dans une fuite connue : hors du périmètre de l'outil

Quatre erreurs qui affaiblissent un mot de passe, même généré

Empiler des règles de complexité sur un mot de passe court

« Une majuscule, un chiffre, un symbole » appliqué à huit caractères donne une impression de sécurité sans le fond. Avec le jeu par défaut de l'outil (82 caractères possibles), 8 caractères tirés au hasard valent environ 51 bits, 16 caractères environ 102 bits. Un mot de passe composé à la main comme Printemps2026! respecte toutes les règles et pourtant ne contient presque aucun hasard : un attaquant essaie d'abord les mots du dictionnaire, les années et les substitutions usuelles. Les lignes directrices NIST SP 800-63B (révision 4) vont dans ce sens : privilégier la longueur, accepter les mots de passe longs (64 caractères au moins), ne pas imposer de règles de composition ni de renouvellement périodique sans suspicion de compromission.

Croire qu'un symbole ajouté en fin de mot rend sûr un mot du dictionnaire
Rester à 8 caractères parce que le formulaire l'accepte
Changer le mot de passe tous les 90 jours en incrémentant un chiffre
Mesurer la force au nombre de classes de caractères plutôt qu'à la part de hasard
Générer sur une page qui voit la valeur

Un générateur n'est sûr que si la valeur ne quitte pas l'appareil. Ici le tirage a lieu dans l'onglet ; un générateur côté serveur, ou une page dont l'éditeur journalise ce qui s'affiche, verrait le secret. Cela ne protège pas contre une extension de navigateur malveillante, un presse-papiers synchronisé ou une capture d'écran. Un détail propre à cet outil : la toute première peinture de la page affiche une liste dérivée d'une graine fixe (pour que le HTML serveur et l'hydratation concordent), remplacée par un tirage Web Crypto dès que le script s'exécute. Copiez seulement une fois la page chargée. Ensuite la liste reste en mémoire jusqu'au rechargement ou à « Tout effacer » : l'outil ne garde aucun historique.

Copier une valeur avant que la page ait fini de charger
Coller un mot de passe dans un ticket, un chat ou une capture d'écran partagée
Laisser un historique de presse-papiers synchronisé conserver le secret
Utiliser un générateur dont on ne peut pas vérifier où le tirage a lieu
Attendre une règle de composition que l'outil ne garantit pas

L'outil tire chaque caractère de façon uniforme dans le jeu actif ; il ne force pas « au moins un chiffre, un symbole ». Avec les réglages par défaut (16 caractères, 82 possibles dont 8 chiffres), environ un mot de passe sur cinq ne contient aucun chiffre, et seulement environ 80 % des tirages contiennent les quatre classes. Si le formulaire exige une classe, ne la tapez pas à la main au bout de la ligne : parcourez la liste (jusqu'à 50 lignes) et prenez-en une qui la contient. Choisir parmi les tirages conformes coûte moins d'un bit d'entropie. Le jeu de symboles est fixe (26 caractères, sans espace) et certains sites en refusent quelques-uns : coupez alors « Symboles » et compensez par la longueur.

Supposer qu'un tirage contient toujours une majuscule, un chiffre et un symbole
Ajouter « 1! » à la main à la fin d'une ligne pour passer la validation
Garder des symboles que le site cible refuse et tourner en rond sur le message d'erreur
Oublier que certains systèmes plafonnent la longueur
Confondre identifiant, hash et mot de passe

Un UUID v4 porte 122 bits aléatoires, mais la spécification (RFC 9562) ne le présente pas comme un secret : voir le guide UUID, ULID et Nanoid. Un hash comme SHA-256 est rapide par construction, donc mal adapté au stockage d'un mot de passe — une carte graphique en teste des milliards par seconde ; le guide hash et HMAC détaille ce qu'il sert à faire (intégrité, signature). Pour stocker un mot de passe, il faut un hash lent et salé (bcrypt, Argon2). Le mot de passe généré ici est le secret de l'utilisateur ; ce que le serveur conserve est son hash lent. Attention aussi à bcrypt : il ne lit que les 72 premiers octets. Le générateur monte jusqu'à 128 caractères, mais au-delà de 72 caractères ASCII, le reste n'entre pas dans le hash — l'outil bcrypt affiche un avertissement dans ce cas.

Stocker un mot de passe avec MD5 ou SHA-256, même salé
Traiter un UUID comme un secret alors que la spécification ne le promet pas
Générer 100 caractères en croyant qu'ils comptent tous dans bcrypt
Laisser un mot de passe en clair dans les logs ou dans un fichier .env versionné

Entropie : ce que la longueur et les jeux de caractères changent en bits

La formule : longueur × log₂(taille du jeu)

Pour un tirage uniforme et indépendant — c'est le cas de l'outil, pas d'un mot de passe choisi par un humain — l'entropie se calcule directement.

Formule : bits = longueur × log₂(taille du jeu). Chaque caractère ajouté multiplie l'espace de recherche par la taille du jeu.
Réglage par défaut (a–z, A–Z, 0–9, symboles, ambigus exclus) : 24 + 24 + 8 + 26 = 82 caractères, soit environ 6,36 bits par caractère. 8 caractères ≈ 51 bits, 12 ≈ 76 bits, 16 ≈ 102 bits, 20 ≈ 127 bits.
Sans exclure les ambigus : 88 caractères, environ 6,46 bits chacun — 16 caractères ≈ 103 bits. Exclure les ambigus ne coûte donc qu'environ 1,7 bit sur 16 caractères.
Lettres et chiffres seulement (ambigus exclus) : 56 caractères, environ 5,81 bits chacun. 16 caractères ≈ 93 bits ; 18 caractères ≈ 105 bits, déjà au-dessus de 16 caractères du jeu complet.
Minuscules seules (ambigus exclus) : 24 caractères, environ 4,58 bits — 16 caractères ≈ 73 bits. Chiffres seuls, exclusion désactivée : 10 caractères, 12 chiffres ≈ 40 bits, soit un code ou un fragment de fixture, pas un mot de passe.
Aléatoire stocké ou phrase de passe retenue

L'outil ne produit que des chaînes de caractères tirées au hasard. Pour un secret que vous devez retenir, la logique est différente.

Chaîne aléatoire de l'outil : impossible à retenir au-delà de quelques caractères, donc à ranger dans un gestionnaire de mots de passe. 16 caractères ≈ 102 bits.
Phrase de passe de type Diceware : chaque mot tiré dans une liste de 7 776 mots ajoute environ 12,9 bits ; 6 mots ≈ 77 bits. Cela ne vaut que si les mots sont tirés au hasard (dés ou outil), pas choisis pour leur sens.
FastMinify ne génère pas de phrase de passe : le champ de longueur compte des caractères, pas des mots. Pour le mot de passe maître d'un gestionnaire, une phrase tirée aux dés convient ; pour tout le reste, un aléatoire stocké.
Au-delà d'une centaine de bits, ajouter des bits ne change plus grand-chose en pratique : le maillon faible devient le stockage, la réutilisation ou l'hameçonnage.
Ce que la cible impose ou plafonne

La longueur idéale dépend aussi de ce que le système destinataire accepte et vérifie réellement.

NIST SP 800-63B (révision 4) : privilégier la longueur, accepter au moins 64 caractères, ne pas imposer de règles de composition ni de renouvellement périodique ; 15 caractères au minimum quand le mot de passe est le seul facteur d'authentification.
bcrypt : seuls les 72 premiers octets comptent. Un mot de passe ASCII de 100 caractères n'est vérifié que sur ses 72 premiers.
Certains formulaires plafonnent à 16, 20 ou 32 caractères ou refusent des symboles : réglez l'outil sur ce que la cible accepte, puis regagnez des bits en gardant les quatre classes.
Une liste destinée à des fixtures peut aller de 8 à 128 caractères : 8, 12, 64 et 128 couvrent les bornes habituelles d'une politique de validation.

Générer, copier, effacer : le parcours dans l'outil

Régler, lire la liste, copier

Dans le générateur de mot de passe, il n'y a pas de bouton « Générer » : la liste se remplit au chargement et se régénère à chaque changement d'option.

1

Choisir la longueur

Saisissez un nombre de 8 à 128 ou utilisez le curseur ; le défaut est 16. Une valeur hors bornes est ramenée dans l'intervalle.

2

Activer les jeux utiles

a–z, A–Z, 0–9 et Symboles sont actifs par défaut. Si vous coupez les quatre, l'outil affiche « Activez au moins un jeu de caractères. » et la liste reste vide.

3

Obtenir une autre liste

Changer la quantité d'une unité, basculer « Exclure ambigus » ou recharger la page produit un nouveau tirage. Il n'existe pas de bouton de régénération à réglages constants.

4

Copier une ligne ou toute la liste

Chaque ligne a son bouton de copie ; « Tout copier » copie la liste, un mot de passe par ligne. « Tout effacer » vide la liste jusqu'au prochain changement d'option.

Ce que l'outil ne fait pas

Quelques limites à connaître avant de s'y fier pour un usage précis.

Pas de jauge de force ni d'entropie affichée : utilisez la formule de ce guide
Pas de mode phrase de passe, pas de règle « au moins un de chaque classe »
Symboles fixes (26) : pas de jeu personnalisé, pas de caractères accentués
Rien n'est mémorisé : pas d'historique, la liste disparaît au rechargement
Le bouton de partage envoie la page de l'outil, pas les mots de passe affichés

Le même tirage dans votre code

Node : un tirage uniforme avec crypto.randomInt

Le jeu par défaut de l'outil (82 caractères, ambigus exclus) en quelques lignes. randomInt évite le biais du modulo.

Exemple de base

import { randomInt } from 'node:crypto' const ALPHABET = 'abcdefghijkmnpqrstuvwxyz' + // sans l, o 'ABCDEFGHJKLMNPQRSTUVWXYZ' + // sans I, O '23456789' + // sans 0, 1 '!@#$%^&*()-_=+[]{}|;:,.<>?' function password(length = 16) { let out = '' for (let i = 0; i < length; i++) { out += ALPHABET[randomInt(ALPHABET.length)] } return out } console.log(password(16)) // 16 caractères parmi 82 console.log((16 * Math.log2(ALPHABET.length)).toFixed(1)) // 101.7 bits
Navigateur : getRandomValues avec rejet

Pour tirer un indice sans biais, rejetez les valeurs qui dépassent le plus grand multiple de la taille du jeu — c'est ce que fait l'outil.

Exemple de base

function randomIndex(max) { // plus grand multiple de max sous 2^32 const limit = Math.floor(0x100000000 / max) * max const buf = new Uint32Array(1) do { crypto.getRandomValues(buf) } while (buf[0] >= limit) return buf[0] % max } // un simple buf[0] % max favorise légèrement les premiers caractères
Stocker : un hash lent côté serveur

Le mot de passe généré reste le secret de l'utilisateur ; le serveur ne conserve qu'un hash bcrypt. Le coût de l'outil va de 4 à 14 (10 par défaut).

Exemple de base

import bcrypt from 'bcryptjs' const hash = await bcrypt.hash(password, 12) // coût 12 const ok = await bcrypt.compare(candidate, hash) // true | false // bcrypt ignore tout après 72 octets
FastMinify password-generator

Aucune installation, rien n'est envoyé, quatre classes, 8 à 128 caractères et jusqu'à 50 lignes à la fois. Contreparties : pas de jauge de force, pas de phrase de passe, pas de garantie « au moins un de chaque » et des symboles fixes. Gardez la page pour un mot de passe à ranger aussitôt dans un gestionnaire ou pour des fixtures. Pour le stockage serveur, passez par bcrypt ou Argon2 dans votre code ; pour une valeur à signer, par un HMAC avec le générateur de hash.

Conclusion

Un mot de passe solide est long, tiré au hasard par un générateur sûr et utilisé une seule fois. Le générateur de mot de passe en ligne produit ce tirage dans votre navigateur avec Web Crypto : 16 caractères des quatre classes valent environ 102 bits, bien plus qu'un mot de passe de 10 caractères « complexe » écrit à la main. Ne lui demandez pas ce qu'il ne promet pas : pas de jauge de force, pas de phrase de passe, pas de garantie « au moins un chiffre ». Rangez le résultat dans un gestionnaire, hachez-le avec bcrypt ou Argon2 côté serveur, et ne confondez ni UUID, ni hash rapide, ni mot de passe. Pour la suite, le hub des utilitaires développeur regroupe les autres générateurs, et le hub des outils de sécurité les outils bcrypt, JWT et scan de secrets.

Longueur d'abord : 16 caractères au moins pour un compte, davantage si la cible l'accepte
Pas de garantie par classe : si le formulaire exige un chiffre, prenez une autre ligne de la liste
Ne copiez qu'une fois la page chargée, collez dans un gestionnaire, puis effacez la liste
bcrypt ne lit que 72 octets : au-delà, les caractères en plus ne protègent rien
Stockage serveur : hash lent et salé (bcrypt, Argon2), jamais MD5 ou SHA-256 seuls
Partager cet article
Partager cet article: