Documentation développeur
Java
Mis à jour le 19 septembre 2026

Générer des mots de passe sûrs en Java

Générez des mots de passe aléatoires avec une source cryptographiquement sûre et sans biais de modulo en Java.

Un générateur de mots de passe doit utiliser le générateur aléatoire cryptographiquement sûr de la plateforme ou du système d’exploitation. N’utilisez pas les générateurs pseudo-aléatoires prévus pour les simulations ou les effets d’interface.

Démarrage rapide#

L’exemple suivant utilise l’API standard de Java ou une bibliothèque couramment utilisée pour cette tâche.

Exemple#

Java
1import java.security.SecureRandom;23String alphabet = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789!@#$%";4SecureRandom random = new SecureRandom();5StringBuilder out = new StringBuilder();67for (int i = ; i < ; i++) {8    out.append(alphabet.charAt(random.nextInt(alphabet.length())));9}1011System.out.println(out);

Opérations courantes#

Ce second exemple couvre une opération fréquente en production ou une manière plus sûre de traiter des entrées réelles.

Variante courante#

Java
1static String password(SecureRandom random, String alphabet, int length) {2    StringBuilder out = new StringBuilder(length);3    for (int i = ; i < length; i++) {4        out.append(alphabet.charAt(random.nextInt(alphabet.length())));5    }6    return out.toString();7}

Points importants#

Utilisez uniquement un CSPRNG pour les mots de passe, jetons et codes de récupération. La génération et le stockage des mots de passe sont deux problèmes distincts.

Bonnes pratiques#

  1. Considérez toute entrée externe comme non fiable et gérez explicitement les erreurs d’analyse ou de validation.
  2. Rendez explicites l’encodage, les unités, les formats et les conventions propres aux bibliothèques aux frontières du système.
  3. Ajoutez des tests couvrant l’entrée vide, le texte Unicode, les entrées invalides et des données représentatives de la production.

Références#

Implémenter Password dans d'autres langages :