|
Articles -
Tutoriels
|
|
Écrit par Joseph DAOUD
|
|
Dimanche, 25 Mai 2008 14:54 |
|
L'une des raisons pour lesquelles il est si facile de se faire pirater son compte est dû à la simplicité des mots de passe choisi par les utilisateurs. Ce tutoriel a pour but de vous montrer comment générer facilement un mot de passe en PHP.Le type de mot de passe généré est difficile à mémoriser mais c'est la rançon de la gloire afin de rendre la tâche plus ardue aux pirates.
1. Génération de la fonction et de ses paramètresDans un premier temps, on crée la fonction et ses paramètres. Les paramètres de la fonction sont: - longueur: la longueur du mot de passe
- consonnes_minuscules: définit si on veut qu'il y ait ou non des consonnes en minuscule dans notre mot de passe
- consonnes_majuscules: définit si on veut qu'il y ait ou non des consonnes en majuscule dans notre mot de passe
- voyelles_minuscules: définit si on veut qu'il y ait ou non des voyelles en minuscule dans notre mot de passe
- voyelles_majuscules: définit si on veut qu'il y ait ou non des voyelles en majuscule dans notre mot de passe
- chiffres: définit si on veut qu'il y ait ou non des chiffres dans notre mot de passe
- speciaux: définit si on veut qu'il y ait ou non des caractères spéciaux dans notre mot de passe
- mot de passe: le mot de passe
- choix: compteur qui identifie au fur et à mesure chaque caractère du mot de passe.
On a un contrôle total sur la taille du mot de passe et sur le type de caractère que l'on souhaite. Étant donné que le PHP n'est pas intelligent, on lui définit chaque groupe en énumérant les différents caractères qui le constitue. La variable mot de passe est définie vide, elle se remplira au fur et à mesure de l'exécution du programme. <?php function creer_password($longueur, $consonnes_minuscules_on, $consonnes_majuscules_on, $ voyelles_minuscules_on, $ voyelles_majuscules_on, $chiffres_on, $speciaux_on) {
$consonnes_minuscules = 'bcdghjlmnpqrstvwxz'; $consonnes_majuscules = 'BCDGHJLMNPQRSTVWXZ'; $voyelles_minuscules = 'aeiouy'; $voyelles_majuscules = 'AEIOUY'; $chiffres = '0123456789'; $speciaux = '@#$%^';
$password = '';
$choix = 1; |
2. Génération du mot de passe
Caractère par caractère, le programme remplit le mot de passe jusqu'à la limite donnée par la variable $longueur. L'algorithme de base se répètera caractère après caractère. Selon la valeur donnée à $choix, le système décide du type de caractères à insérer, en l'ajoutant aux caractères déjà présents. La fonction de sélection aléatoire pêche la variable à l'intérieur, en tirant au sort un chiffre compris entre 1 et le nombre de caractères compris dans la variable. Le caractère correspondant à ce chiffre est choisi et vient intégrer le mot de passe. for($i = 0; $i = 1 < $longueur; $i++) { if ($choix == 1) { if($consonnes_minuscules_on == 1) { $password = $consoones_minuscules [(rand() % 17)]; } $choix = 0; } else if ($choix == 2) { if ($consonnes_majuscules_on == 1) { $password = $consonnes_majuscules [(rand() % 17)]; } $choix = 1; } else if (choix == 3) { if ($voyelles_minuscules_on == 1) { $password = voyelles_minuscules [(rand() % 6)]; } $choix = 2; } else if ($choix == 4) { if ($voyelles_majuscules_on == 1) { $password = voyelles_majuscules [(rand() % 6)]; } $choix = 3; } else if ($choix == 4) { if ($voyelles_majuscules_on ==1) { $password = voyelles_majuscules [(rand() % 6)]; } $choix = 3; } else if ($choix == 5) { if ($chiffres_on == 1) { $password = $chiffres[(rand()%10)]; } $choix = 4; } else { if ($speciaux_on == 1) { $password = $speciaux[(rand() % 5)]; } $choix = 5; } } return $password; } ?>
|
 |