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 éclairé Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    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 Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    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 		:: string 	=> Determine le type de code à générer, prends l'un des valeurs suivante "numerique" OU "texte" OU "alphanumerique"
    	$length		:: Int32	=> Détermine le nombre de caractères composants chaque code
    */
    function GenereCode ( $type , $length )
    {
     
    	$code = "";
     
    	switch ( $type )
    	{
    		case "numerique":
    			for( $i=0; $i < $length; $i++)
    			{
    				$code .= chr(rand(48 , 57));
    			}
    		break;
    		case "texte":
    			for( $i=0; $i < $length; $i++)
    			{
    				$code .= chr(rand(65 , 90));
    			}
    		break;
    		case "alphanumerique":
    			$OdlValue = "";
    			for( $i=0; $i < $length; $i++)
    			{
    				if ( ! is_int ($OdlValue) )  $OdlValue = ord( $OdlValue );
    				if( ($OdlValue % 2) == 0 )
    				{
    					$OdlValue = chr(rand(48 , 57));
    				} 
    				else
    				{
    					$OdlValue = chr(rand(65 , 90));
    				}
    				$code .= $OdlValue;
    			}
    		break;
    	}
    	return $code;
    }
    ?>

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

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

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

    Mais bon tant mieux si sa te convient !

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

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

  6. #6
    Membre Expert

    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
    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 ($i=0;$i<$long_mdp;$i++)
        {$aleatoire=rand(0,strlen($caracteres)-1);
        $mdp=$mdp.substr($caracteres,$aleatoire,1);
        }
     
    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 éclairé Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    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
    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 Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    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 expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    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 Expert

    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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    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, 15h41
  2. SSH script avec username et mot de passe
    Par faamugol dans le forum Sécurité
    Réponses: 13
    Dernier message: 08/05/2009, 15h54
  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, 11h24
  4. Réponses: 6
    Dernier message: 17/09/2007, 22h05
  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, 13h14

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