Quel est mon mot de passe ?

Dans une interface d'administration qui se respecte, on doit pouvoir à un moment créer des comptes. Il est souvent agréable de se voir proposer un mot de passe aléatoire. En général, je n'utilise pas un mot de passe complétement alétaoire: je supprime les caractères ambigus tels que 0, 1, i, j, l, m, n, o, u, v,I,O. Le code peut ressembler à ça. La fonction attend en paramètre la longueur du mot de passe à générer. Cette fonction n'a rien d'extraordinaire mais elle ne fait que ce qu'on lui demande mais elle le fait bien!

<?php
function generate_password($size) {
  
$listeChar '23456789abcdefghkpqrstwxyzABCDEFGHKJLMNPQRSTUVWXYZ'
  
$max strlen($listeChar)-1;

  
$key '';
  for (
$i=0;$i<$size;$i++) {
    
$key .= $listeChar[mt_rand(0,$max)];
  }
  return 
$key;
}
?>

Petite mise à jour. J'avais oublié de préciser une chose: pourquoi je supprime certains caractères ? Je supprime les caractères 0, 1, i, j, l, m, n, o, u, v,I,O car ils sont potentiellement ambigus. Le "i" peut être confondu avec le "l", le "0" avec le "O". Même dans la phrase précédente on ne sait pas au premier coup d'oeil si j'ai écris "le zéro et la lettre O" ou "la lettre O et le zéro. L'intérêt est de générer des mots de manière automatique en enlevant les ambiguïtés visuelles.

Haut de page