IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Générer aléatoirement un mot de passe en PHP


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 62
    Points : 37
    Points
    37
    Par défaut Générer aléatoirement un mot de passe en PHP
    Salut

    Quelqu'un peut me donner un code qui génére aléatoirement un code de dix caractere en php comme pour les cartes de crédit...

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Non mais on peut s'en doute t'aider à en créer un.

    Voir la fonction rand() , à associer avec des tableaux de caractères par exemple
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 62
    Points : 37
    Points
    37
    Par défaut utilisation de la fonction rand() pour générer aléatoirement des caracteres
    comment utilise-t-on cette fonction ?

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    en voici une :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    // Créer les mots de passe ================================
    function Make_Pass(){
     
    $Lettre1 = "ABCDEFGHJKLMNPQRSTUVWXYZ";
    $Lettre2 = "ABCDEFGHJKLMNPQRSTUVWXYZ";
    $i = 0;
     
    $a = rand(0,strlen($Lettre1));
    $ThePass = substr($Lettre1, $a, 1);
     
    while($i < 9){
       $X = rand(0,strlen($Lettre2));
       $Xarray = array(2,10,17,20);
     
       if(!in_array($X, $Xarray)){
          $ThePass.= substr($Lettre2, $X, 1);}
       else{
          $Y = rand(0,9);
     
       $ThePass.= $Y;}
    $i++;
    }
    return $ThePass;
    }
    //------------------------------------------------------------
    Que tu peux appeller comme ceci :

  5. #5
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    dans la même logique que N1bus,une autre fonction que j'ai amélioré à mon goût

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    function make_password($len) {
          $consonants = 'bdghjlmnpqrstvwxzBDGHJLMNPQRSTVWXZ@#$%^0123456789';
          $vowels = "aeiouyAEIOUY";
     
      $alt = time() % 2;
      srand(time());
      for ($i = 0; $i < $len; $i++) {
        if ($alt == 1) {
          $password .= $consonants[(rand() % strlen($consonants))];
          $alt = 0;
        } else {
            $password .= $vowels[(rand() % strlen($vowels))];
          $alt = 1;
        }
      }
      return $password;
    }
     
    //pour générer un mot de passe d'une longueur 8
    echo '<h1>'.make_password(8).'</h1>';
    ?>
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  6. #6
    mon_nom_est_personne
    Invité(e)
    Par défaut
    et moi je plante la plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    function generate_password($length = 6) {
    		$password = "";
    		$possible = "0123456789bcdfghjkmnpqrstvwxyz"; 
     
    		$i = 0;
    		while ($i<$length) {
    			$char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
     
    			if (!strstr($password, $char)) { 
    				$password .= $char;
    				$i++;
    			}
    		}
    		return $password;
    	}

  7. #7
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    @thes32 : sympa

    finalement j'ai repris la tienne à ma sauce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?php
    // Créer les mots de passe ===================================
    function Make_Pass($len){
     $char1 = "AaBbCcDdEeFfGgHhJjKkLMmNnPpQqRrSsTtUuVvWwXxYyZz";
     $char2 = "AaBbCcDd!EeFfGgHhJjKkLMm#NnPp$QqRrSsTtUuVv%WwXxYyZz";
     
     //pour que le mot de passe commence impérativement par une lettre
     $ThePass.= $char1[(rand() % strlen($char1))];
     
     //génère un tableau aléatoire
     $x_array = array();
     for($i = 0; $i < 15; $i++){
      $x_array[] = $char2[(rand() % strlen($char2))];
     }
     
     for ($i = 0; $i < ($len - 1); $i++) {
     
      $X = $char2[(rand() % strlen($char2))];
      if(!in_array($X, $x_array)){//si le caractère n'est pas dans le tableau, on l'ajoute
       $ThePass.= $X;
      }
      else{
       $ThePass.= rand(1,9); // sinon on ajoute un chiffre
      }
     }
     return $ThePass;
    }
    //---------------------------------------------------------
    echo Make_Pass(10);
    ?>
    Pour éviter les erreurs de saisie : pas de zéro ou de O o, pas de i, I, l (L minuscule) => confusion avec le 1

    ça évite que les clients t'appellent : "ça marche pas !!!"

    depuis PHP 4.2.0 : pas besoin d'initialiser avec srand()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 29/04/2008, 21h53
  2. [LDAP] Authentification LDAP via nom d'utilisateur/mot de passe en PHP
    Par hismaella dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 21/03/2007, 15h28
  3. Réponses: 2
    Dernier message: 22/01/2007, 17h19
  4. mot de passe crypté php / mysql
    Par billy1377 dans le forum Administration
    Réponses: 1
    Dernier message: 20/09/2006, 10h04
  5. cryptage assymetrique de mot de passe(javascript/PHP)
    Par chess132 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 25/10/2005, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo