CrazyCat Programming Factory
rendre internet plus accessible
 

Générer un mot de passe

Logo phpBien souvent, on a besoin de pouvoir générer un mot de passe, si possible composé de lettres et de chiffres.

La petite fonction ci-dessous le réalise mais offre quelques options qui ne sont pas dépourvues d'intérêt:
* choix de la longueur du mot de passe (8 par défaut)
* choix du type de lettres (majuscules ou minuscules)
* Possibilité d'épeler le mot de passe (désactivé par défaut)
<?
function mkpassword($len=8, $min=true, $spell=false) {
   $ok_chars = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whisky", "X-ray", "Yankee", "Zulu");
   // Le tableau des caractères utilise le code phonétique international
   $password["string"] = "";
   $password["litteral"] = "";
   for ($i=0; $i<$len; $i++) {
      $val = rand(0,count($ok_chars) - 1);
      $password["string"] .= $ok_chars[$val]{0} ;
      $password["litteral"] .= $ok_chars[$val]." ";
   }
   if ($min == true)
      $password["string"] = strtolower($password["string"]);
   $password["litteral"] = trim($password["litteral"]);
   if ($spell == true) {
      return $password;
   } else {
      return $password["string"];
   }
}
?>

La fonction peut être appelée de quatres manières différentes et renverra deux types de données:
/* Cas 1: appel simple */
$mypass = mkpassword();
// Renvoit une chaîne de 8 caractères, chiffres et lettres minuscules

/* Cas 2: choix de la longueur du mot de passe */
$mypass = mkpassword(16);
// renvoit une chaîne de 16 caractères, chiffres et lettres minuscules

/* Cas 3: lettres majuscules */
// *** Atention *** Il faut obligatoirement donner une longueur
$mypass = mkpassword(8, false);
// renvoit une chaîne de 8 caractères, chiffres et lettres majuscules

/* Cas 4: Mot de passe épelé */
$mypass = mkpassword(8, true, true);
// renvoit un tableau contenant le mot de passe et son épelation
echo $mypass["string"]." => ".$mypass["litteral"];

©2006-2019 Geek Zone | eggdrop.fr | zeolia.net