Comment générer un mot de passe aléatoire en JavaScript ?

Réponses rédigées par Antoine
Dernière mise à jour : 2022-04-10 11:19:28
Question

Comment faire pour générer un mot de passe aléatoire en JavaScript avec un certain nombre de minuscules, majuscules, chiffres et caractères spéciaux ?

Réponse

Pour générer un mot de passe aléatoire en JavaScript, avec un nombre minimum de caractères, des minuscules, majuscules, chiffres et caractères spéciaux, vous pouvez créer une fonction.

On définit tout d'abord des variables qui listent les chiffres, lettres minuscules puis majuscules, ainsi que les caractères spéciaux.

On définit ensuite d'autres variables qui via la propriétés length calculent le nombres de chiffres, lettres et caractères spéciaux.

Pour chaque typologies de caractères on effectue une boucle for avec la fonction Math.random()ce qui permet de sélectionner de manière aléatoire un caractère.

<!DOCTYPE html> 
<html> 
<head>
<meta charset="UTF-8">
<title>Comment générer un mot de passe aléatoire en JavaScript ?</title>
</head>
<body>
<script>
function genererPass() {     
  var chiffres = '0123456789';
  var min = "abcdefghijklmnopqrstuvwxyz";
  var maj = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  var special = "?!~$#_";
  let pass = '';
  var len_chiffres = chiffres.length;
  var len_min = min.length;
  var len_maj = maj.length;
  var len_special = special.length;

  for (let i = 0; i < 1; i++ ) {
    pass += chiffres[Math.floor(Math.random() * len_chiffres)];
  }

  for (let i = 0; i < 3; i++ ) {
    pass += min[Math.floor(Math.random() * len_min)];
  }

  for (let i = 0; i < 1; i++ ) {
    pass += maj[Math.floor(Math.random() * len_maj)];
  }

  for (let i = 0; i < 1; i++ ) {
    pass += special[Math.floor(Math.random() * len_special)];
  }

  var melanger = pass.split('').sort(function(){return 0.5-Math.random()}).join('');
  return melanger;
}
  
alert(genererPass());
</script> 
</body>
</html>

Dans cet exemple on génère un mot de passe aléatoire qui fait 6 caractères : il contient un chiffre, trois minuscules, une majuscule et un caractère spécial.

Remarque : C'est dans les paramètres des boucles for (< 3 pour 3 caractères )que vous pouvez modifier le nombre de caractères qui sera inclus dans le mot de passe.