Création d’un mot de passe aléatoire en PHP, génération automatique de mot de passe

De plus en plus de sites requièrent une inscription pour pouvoir en user de toutes les fonctionnalités. Si vous êtes un webmaster en herbe, vous serez surement confronté à cette situation tôt ou tard. Pour pouvoir générer des mots de passe aléatoires, voici une solution basique à intégrer dans votre programmation.

Fonction pour générer des mots de passe : le paramétrage

Après avoir ouvert votre nouvelle page PHP, il suffit de mettre la programmation suivante pour générer vos mots de passe :

<form action='ListPasswd.php'>

Nombre de mot de passe a générer : <input type='text' Name='nbrPasswd' value='1'>

<br>

Taille du/des mot(s) de passe (Nombre de caractères) : <input type='text' Name='nbrCaract' value='5'>

<br>

Type de mot de passe :     <select name='typePasswd'>

<option value='1'>Chiffres uniquement</option>

<option value='2'>Lettres uniquement</option>

<option value='3'>Chiffres et lettres</option>

<option value='4'>Tout caractères</option>

</select>

<br>

<input type='submit' value='Générer'>

</form>

A la suite du remplissage de ce formulaire, les mots de passe seront listés sur un seconde page, avec une formule différente.

Générer la liste des mots de passe

Comme pour le paramétrage, il faut ouvrir une nouvelle page PHP pour injecter la formule qui suit :

<?php// Récupère les paramètres pour adapter selon les besoins de l'utilisateur$SaisieNbrPasswd     = $_GET['nbrPasswd']    ;$SaisieNbrCaract    = $_GET['nbrCaract']    ;$SaisieTypePasswd     = $_GET['typePasswd']    ; // Type de caractères à prendre en compte pour générer les mots de passe (change selon paramètre utilisateur) :if ($SaisieTypePasswd == '1'){$caract = "0123456789";}else if ($SaisieTypePasswd == '2'){$caract = "abcdefghijklmnopqrstuvwyxz";}else if ($SaisieTypePasswd == '3'){$caract = "abcdefghijklmnopqrstuvwyxz0123456789";}else if ($SaisieTypePasswd == '4'){$caract = "abcdefghijklmnopqrstuvwyxz0123456789@!:;,§/?*µ$=+";} // Nombre de caractères que le mot de passe doit contenir (= saisie utilisateur) :$nb_caract = $SaisieNbrCaract; // On fait un première boucle pour générer des mots de passe jusqu'au nombre indiqué par l'utilisateur// Puis une seconde boucle pour générer le mot de passe caractère par caractère jusqu'au nombre indiqué par l'utilisateurfor($nbrPasswd = 1; $nbrPasswd <= $SaisieNbrPasswd; $nbrPasswd++){for($i = 1; $i <= $nb_caract; $i++) { // On compte le nombre de caractères$Nbr = strlen($caract); // On choisit un caractère au hasard dans la chaine sélectionnée :$Nbr = mt_rand(0,($Nbr-1)); // Pour finir, on écrit le résultat :print $caract[$Nbr]; }echo "<br>";}?>

L’interface

A la suite de ces réglages, vous obtenez une interface de génération de mots de passe dont les paramètres sont les suivants : taille du mot de passe (nombre de caractères), le nombre de mots de passe à créer et enfin le type de caractères contenus dans le mot de passe.