Générer un mot de passe
Bien 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"];
}
}
?>
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"];
$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"];