Générer un mot de passe en PHP PDF Imprimer Email
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ètres

Dans 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;
            }
?>
Commentaires (0)Add Comment

Ecrivez un commentaire
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
Réduire l'éditeur | Agrandir l'éditeur

busy