Générateur de mots de passe

Générez des mots de passe aléatoires et robustes avec une longueur et des jeux de caractères personnalisables

Longueur20
Nombre5

Qu'est-ce qu'un générateur de mots de passe ?

Un générateur de mots de passe crée des chaînes de caractères aléatoires utilisées comme mots de passe pour les comptes utilisateurs, les clés API, les identifiants de bases de données et les secrets de chiffrement. Contrairement aux mots de passe choisis par les humains, les mots de passe générés exploitent l'espace complet des combinaisons de caractères possibles, les rendant résistants aux attaques par dictionnaire et aux devinettes basées sur des schémas. Cet outil génère des mots de passe aléatoires et robustes en ligne en utilisant le générateur de nombres aléatoires cryptographique intégré à ton navigateur.

La robustesse d'un mot de passe dépend de deux facteurs : la longueur et la diversité des caractères. Un mot de passe de 20 caractères utilisant des majuscules, des minuscules, des chiffres et des symboles possède environ 131 bits d'entropie. À ce niveau, une attaque par force brute testant mille milliards de tentatives par seconde nécessiterait plus longtemps que l'âge de l'univers pour essayer toutes les combinaisons. Le calcul est simple : entropie = longueur × log2(taille du jeu de caractères).

Des normes comme NIST SP 800-63B recommandent des mots de passe d'au moins 8 caractères sans limite supérieure imposée par le vérificateur, et déconseillent les règles de composition forcée comme l'exigence d'exactement un symbole, en favorisant plutôt des phrases de passe plus longues. Pour les identifiants machine-à-machine et les comptes de service, 20 caractères aléatoires ou plus tirés d'un jeu de caractères complet constituent la référence acceptée dans la plupart des cadres de sécurité et des régimes de conformité.

Pourquoi utiliser un générateur de mots de passe ?

Les humains sont de mauvais générateurs de nombres aléatoires. Nous réutilisons des mots de passe, choisissons des mots du dictionnaire, substituons des lettres par des schémas prévisibles (@ pour a, 3 pour e) et optons par défaut pour des chaînes courtes. Un générateur de mots de passe élimine les biais humains du processus.

🔐
Génération axée sur la confidentialité
Les mots de passe sont générés entièrement dans ton navigateur grâce à l'API Web Crypto. Aucun caractère ne quitte ton appareil, rien n'est enregistré et aucune requête réseau n'est effectuée lors de la génération.
Sortie par lot instantanée
Génère jusqu'à 20 mots de passe en une seule fois d'un simple clic. Copie les mots de passe individuellement ou tous à la fois pour tes scripts de provisionnement ou tes coffres-forts de mots de passe.
🛡️
Aucun compte requis
Pas d'inscription, pas d'adresse e-mail, aucun cookie ne suit les mots de passe générés. Ouvre la page, configure tes options et génère.
🎛️
Contrôle complet du jeu de caractères
Active ou désactive les majuscules, les minuscules, les chiffres et les symboles de façon indépendante. Définis une longueur de 4 à 128 caractères pour correspondre aux exigences de n'importe quel système ou politique.

Cas d'usage du générateur de mots de passe

Développement frontend
Génère des mots de passe de test pour la validation de formulaires, les tests de longueur de saisie et le développement des flux d'authentification. Vérifie que tes formulaires de connexion gèrent correctement les mots de passe de 128 caractères et les caractères spéciaux.
Backend et DevOps
Crée des identifiants de bases de données, des jetons API et des mots de passe de comptes de service lors de la mise en place de l'infrastructure. Utilise la génération par lot pour provisionner plusieurs services en une seule session.
Ingénierie de la sécurité
Génère des secrets à haute entropie pour les clés de chiffrement, la signature HMAC et la rotation des secrets JWT. Définis une longueur de 64 caractères ou plus pour les secrets devant dépasser 256 bits d'entropie.
QA et tests d'intrusion
Teste l'application des politiques de mots de passe en générant des chaînes incluant ou excluant des jeux de caractères spécifiques. Vérifie que les systèmes rejettent correctement les mots de passe en dessous de la longueur minimale ou de la complexité requise.
Ingénierie des données
Génère des identifiants aléatoires pour les environnements de test, les bases de données de staging et les secrets de pipeline CI/CD. Évite la réutilisation des mots de passe de production dans les données de test en en générant de nouveaux pour chaque environnement.
Sécurité des comptes personnels
Crée des mots de passe uniques pour chaque compte en ligne. Associe ce générateur à un gestionnaire de mots de passe pour stocker les identifiants que tu n'as pas besoin de mémoriser.

Référence sur l'entropie des mots de passe

L'entropie mesure l'imprévisibilité d'un mot de passe. Elle est calculée comme log2(taille_du_jeu ^ longueur). Une entropie plus élevée signifie davantage de combinaisons possibles à parcourir pour un attaquant. NIST et OWASP recommandent au moins 80 bits d'entropie pour les applications à haute sécurité.

LongueurJeu de caractèresEntropieTemps par force brute
8lower + digits~41 bitsMinutes to hours
12lower + upper + digits~71 bitsCenturies (offline)
16all character sets~105 bitsBeyond brute-force
20all character sets~131 bitsBeyond brute-force
32all character sets~210 bitsBeyond brute-force
64all character sets~419 bitsBeyond brute-force

Les temps de craquage supposent 1 000 milliards de tentatives par seconde (attaque hors ligne avec des GPU modernes). Les attaques en ligne avec limitation de débit sont plusieurs ordres de grandeur plus lentes.

CSPRNG vs Math.random() pour la génération de mots de passe

La source d'aléatoire est aussi importante que la longueur du mot de passe. Un mot de passe généré avec un générateur de nombres aléatoires prévisible peut être reconstruit par un attaquant qui connaît l'algorithme et l'état d'initialisation. Cet outil utilise crypto.getRandomValues(), un générateur de nombres pseudo-aléatoires cryptographiquement sûr (CSPRNG) intégré à tous les navigateurs modernes.

crypto.getRandomValues()
Utilise les sources d'entropie du système d'exploitation (RNG matériel, chronométrage des interruptions, etc.). La sortie est imprévisible même si un attaquant connaît toutes les sorties précédentes. Exigé par la spécification W3C Web Crypto pour les opérations sensibles à la sécurité.
Math.random()
Utilise un algorithme déterministe initialisé à partir d'un pool d'entropie limité. La sortie peut être prédite si l'état d'initialisation est connu. La spécification ECMAScript indique explicitement que Math.random() ne fournit pas de nombres aléatoires cryptographiquement sûrs. Ne jamais l'utiliser pour la génération de mots de passe.

Exemples de code

Génère des mots de passe par programmation dans différents langages. Chaque exemple ci-dessous utilise une source aléatoire cryptographiquement sûre, et non Math.random() ou des PRNG faibles équivalents.

JavaScript (Web Crypto API)
// Generate a random password in the browser or Node.js 19+
function generatePassword(length = 20) {
  const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*'
  const values = new Uint32Array(length)
  crypto.getRandomValues(values)
  return Array.from(values, v => charset[v % charset.length]).join('')
}

console.log(generatePassword())    // → "kR7!mZp$Xw2&nLq9@Yf3"
console.log(generatePassword(32))  // → "Hd4%tNx!Qw8#mKp2Rv6&Zj0*Ls3Yb7@"
Python
import secrets
import string

def generate_password(length: int = 20) -> str:
    """Generate a cryptographically secure random password."""
    alphabet = string.ascii_letters + string.digits + string.punctuation
    return ''.join(secrets.choice(alphabet) for _ in range(length))

# Single password
print(generate_password())      # → "kR7!mZp$Xw2&nLq9@Yf3"

# Batch of 5 passwords
for _ in range(5):
    print(generate_password(24))

# Ensure at least one char from each category
def generate_strong(length: int = 20) -> str:
    required = [
        secrets.choice(string.ascii_uppercase),
        secrets.choice(string.ascii_lowercase),
        secrets.choice(string.digits),
        secrets.choice(string.punctuation),
    ]
    remaining = length - len(required)
    alphabet = string.ascii_letters + string.digits + string.punctuation
    all_chars = required + [secrets.choice(alphabet) for _ in range(remaining)]
    secrets.SystemRandom().shuffle(all_chars)
    return ''.join(all_chars)
CLI (OpenSSL / /dev/urandom)
# OpenSSL — generate 32 random bytes, base64-encode
openssl rand -base64 32
# → "x7Kp2mNqR4wZ8vLs1Yb0Hd6tFj3Xc9Ga5eUi+Wo="

# /dev/urandom with tr — alphanumeric + symbols, 20 chars
tr -dc 'A-Za-z0-9!@#$%^&*' < /dev/urandom | head -c 20; echo
# → "kR7!mZp$Xw2&nLq9@Yf3"

# pwgen (install: apt install pwgen / brew install pwgen)
pwgen -sy 20 5
# Generates 5 passwords, 20 chars each, with symbols
Go
package main

import (
    "crypto/rand"
    "fmt"
    "math/big"
)

func generatePassword(length int) (string, error) {
    charset := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()"
    result := make([]byte, length)
    for i := range result {
        idx, err := rand.Int(rand.Reader, big.NewInt(int64(len(charset))))
        if err != nil {
            return "", err
        }
        result[i] = charset[idx.Int64()]
    }
    return string(result), nil
}

func main() {
    pwd, _ := generatePassword(20)
    fmt.Println(pwd) // → "kR7!mZp$Xw2&nLq9@Yf3"
}

Questions fréquentes

Quelle doit être la longueur d'un mot de passe ?
Pour les comptes utilisateurs, 16 caractères issus d'un jeu de caractères mixte fournit plus de 100 bits d'entropie, ce qui est suffisant pour tous les modèles de menace actuels. Pour les secrets machine (clés API, clés de chiffrement), utilise 32 caractères ou plus. NIST SP 800-63B fixe un minimum de 8 caractères mais recommande que les systèmes autorisent des mots de passe beaucoup plus longs sans troncature.
Ce générateur de mots de passe est-il sûr à utiliser ?
Oui. Les mots de passe sont générés dans ton navigateur en utilisant l'API Web Crypto (crypto.getRandomValues). Aucune donnée n'est envoyée à un serveur. Tu peux le vérifier en ouvrant l'onglet réseau de ton navigateur et en observant qu'aucune requête n'est effectuée lorsque tu cliques sur Générer. Le code source est du JavaScript côté client, visible dans les outils de développement de ton navigateur.
Qu'est-ce que l'entropie d'un mot de passe ?
L'entropie est une mesure du caractère aléatoire exprimée en bits. Un mot de passe avec N bits d'entropie a 2^N valeurs possibles. Par exemple, un mot de passe de 20 caractères tiré de 95 caractères ASCII imprimables a log2(95^20) = 131,1 bits d'entropie. Chaque bit supplémentaire double le nombre de tentatives nécessaires pour un attaquant.
Dois-je inclure des symboles dans mes mots de passe ?
L'inclusion de symboles fait passer le jeu de caractères de 62 (lettres + chiffres) à 95 (ASCII imprimable), ce qui ajoute environ 6,1 bits d'entropie par caractère. Certains systèmes restreignent les symboles autorisés. Si un système rejette certains symboles, désactive l'option symboles et compense avec un mot de passe plus long. Un mot de passe alphanumérique de 24 caractères a plus d'entropie qu'un mot de passe de 16 caractères avec des symboles.
Pourquoi ne pas utiliser Math.random() pour générer des mots de passe ?
Math.random() n'est pas cryptographiquement sûr. La plupart des moteurs JavaScript l'implémentent avec xorshift128+ ou un PRNG rapide similaire conçu pour la simulation et les jeux, pas pour la sécurité. Un attaquant qui observe quelques sorties peut récupérer l'état interne et prédire toutes les sorties futures. L'API Web Crypto utilise des sources d'entropie du système d'exploitation qui ne sont pas prévisibles.
Puis-je utiliser les mots de passe générés comme clés API et jetons ?
Oui, mais tiens compte des exigences de format de ton système cible. Certaines APIs attendent des clés encodées en base64 ou des chaînes hexadécimales plutôt que des caractères arbitraires. Pour la génération de secrets bruts, utilise le jeu de caractères complet avec 32 caractères ou plus. Pour les clés base64, génère des octets aléatoires et encode-les séparément plutôt que de traiter base64 comme un jeu de caractères de mot de passe.
À quelle fréquence faut-il renouveler les mots de passe ?
NIST SP 800-63B (2017, mis à jour en 2024) déconseille la rotation périodique forcée pour les mots de passe utilisateurs car elle conduit à des choix de mots de passe plus faibles. Ne renouvelle que s'il y a des preuves de compromission. Pour les secrets machine et les comptes de service, renouvelle en fonction du modèle de risque de ton organisation, généralement tous les 90 jours pour les identifiants à hauts privilèges.