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 :

[conseil] script de génération de mots de passe


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 307
    Points
    307
    Par défaut [conseil] script de génération de mots de passe
    Bonjour,

    Connaissez-vous un bon script
    rapide
    top sécu

    pour générer des mots de passe du type:
    rdndw6sw
    zw9olm2x
    :

    Merci d'avance...

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Ce script doit surement pouvoir s'améliorer, d'ailleurs si vous avez des idées sa m'interesse.
    Mais bon sa te donnes un point de départ.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <? 
    /*
    	Permet de générer un code aléatoire
    	ARGUMENTS
    	$type 		&#58;&#58; string 	=> Determine le type de code à générer, prends l'un des valeurs suivante "numerique" OU "texte" OU "alphanumerique"
    	$length		&#58;&#58; Int32	=> Détermine le nombre de caractères composants chaque code
    */
    function GenereCode &#40; $type , $length &#41;
    &#123;
     
    	$code = "";
     
    	switch &#40; $type &#41;
    	&#123;
    		case "numerique"&#58;
    			for&#40; $i=0; $i < $length; $i++&#41;
    			&#123;
    				$code .= chr&#40;rand&#40;48 , 57&#41;&#41;;
    			&#125;
    		break;
    		case "texte"&#58;
    			for&#40; $i=0; $i < $length; $i++&#41;
    			&#123;
    				$code .= chr&#40;rand&#40;65 , 90&#41;&#41;;
    			&#125;
    		break;
    		case "alphanumerique"&#58;
    			$OdlValue = "";
    			for&#40; $i=0; $i < $length; $i++&#41;
    			&#123;
    				if &#40; ! is_int &#40;$OdlValue&#41; &#41;  $OdlValue = ord&#40; $OdlValue &#41;;
    				if&#40; &#40;$OdlValue % 2&#41; == 0 &#41;
    				&#123;
    					$OdlValue = chr&#40;rand&#40;48 , 57&#41;&#41;;
    				&#125; 
    				else
    				&#123;
    					$OdlValue = chr&#40;rand&#40;65 , 90&#41;&#41;;
    				&#125;
    				$code .= $OdlValue;
    			&#125;
    		break;
    	&#125;
    	return $code;
    &#125;
    ?>

  3. #3
    Membre averti Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 307
    Points
    307
    Par défaut
    il marche bien, sur 50000 mdp, aucun doublon !
    (j'ai testé)

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Tu t'est cracké 50 000 itérations

    Mais bon tant mieux si sa te convient !

  5. #5
    Membre averti Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 307
    Points
    307
    Par défaut
    si il y en a d'autres, je suis preneur...

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Perso, je faisais plus simple.
    Je prends une variable texte avec l'ensemble des caractères autorisés (ce qui me permet de supprimer O et 0, I et 1... qui risquent d'être confondus par l'utilisateur).
    Puis je génère un nombre aléatoire n compris entre 1 et le nombre de caractères. J'extrait le n ième caractère de ma chaîne que je concatène à mon mdp. Et je continue jusqu'à la longueur demandée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $caracteres='abcdefghjklmnpqrstuvwxyz23456789';
    $long_mdp=10;
    $mdp='';
     
    for &#40;$i=0;$i<$long_mdp;$i++&#41;
        &#123;$aleatoire=rand&#40;0,strlen&#40;$caracteres&#41;-1&#41;;
        $mdp=$mdp.substr&#40;$caracteres,$aleatoire,1&#41;;
        &#125;
     
    echo $mdp;
    Bien sûr, on peut transformer ça en fonction avec comme argument la longueur du mdp, les caractères autorisés, voire le nombre de mdp demandés (renvoyés dans un tableau) avec suppression des doublons...

  7. #7
    Membre averti Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 307
    Points
    307
    Par défaut
    cool, ça me plaît aussi, ça pour les mêmes raisons que toi

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    J'arrive à la bourre donc inutile de poster celle que j'utilise : vg33 a posté la même solution. J'ai juste une suggestion, cependant : quitte à enlever les caractères problématiques, autant enlever également le "l".

  9. #9
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    si il y en a d'autres, je suis preneur...
    Ce que tu peux aussi c'est generer un session_id ou md5 et après ne prendre que la longueur qui t'interesse.

    Pour toutes ces fonctions si jamais tu as deux doublons, un truc rapide qui devrait fonctionner c'est shuffle.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 186
    Points
    186
    Par défaut
    Trouvé un jour sur Internet, mais je ne me rappelle plus où...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    tokens = 'azer0123tyuqsdfghjkENBA789CPLNmwxcvbn456' ; //*** Caractères pouvant composer le code
    $l = strlen($tokens) ;
    $n = 6 ; //*** Nbre de caractères du code à générer
    $code = '' ;
    //*** Rajouter un srand( ) pour les versions < PHP 4.2
    for ( $i = 0 ; $i < $n ; $i++ ) {
        $code .= $tokens{mt_rand(0, $l - 1)} ;
     
    }

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357

  12. #12
    Membre averti Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 307
    Points
    307
    Par défaut
    Citation Envoyé par jeca
    beau,ça, je connaissais pas !!

    Merci

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

Discussions similaires

  1. Script de gestion de mot de passe Samba
    Par Neo08 dans le forum Linux
    Réponses: 5
    Dernier message: 11/06/2009, 16h41
  2. SSH script avec username et mot de passe
    Par faamugol dans le forum Sécurité
    Réponses: 13
    Dernier message: 08/05/2009, 16h54
  3. Génération de mot de passe automatique
    Par thecharmer dans le forum Général Java
    Réponses: 3
    Dernier message: 29/05/2008, 12h24
  4. Réponses: 6
    Dernier message: 17/09/2007, 23h05
  5. [framework]génération de mot de passe aléatoire
    Par seb_fou dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 13/02/2006, 14h14

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