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

Contribuez Discussion :

Generateur de mots de passe


Sujet :

Contribuez

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut Generateur de mots de passe
    Voici un petit script que j'ai réalisé pour generer un mot de passe

    On peut générer des mots de passe de différents niveaux de complexité:

    niveau 1: juste des lettres minuscules
    niveau 2: niveau 1 + lettres(s) majuscule(s)
    niveau 3: niveau 2 et chiffre(s)
    niveau 4: niveau3 + caractère(s) spécial(aux)


    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
    <title>Password Generator</title>
    <style type="text/css">
    body, html {
    	height:100%;
    	width:100%;
    	overflow:hidden;
    	}
    body{
    	background-color: #8FB480;
    	color: #025D02;}
    #cont {
    	width:450px;
    	margin:20px auto;
    	border: solid 2px #194308;
    	height:auto;
    	overflow:hidden;
    	}
     
    .label {width : 150px;
    		 float:left;
    		 padding:5px 0 15px 15px;
    		 }
     
    .label, h3 { font-family:verdana;
            }
    .field {
    	width: 100%;
    	background-color: #9EEE91 ;
    	padding : 5px 0;
    	float:left;
    	}
    #lon {
    		width:30px;
    		text-align:right;
    		}	
    #res {
    		width:250px;
    		font-family:consolas,dina,arial ;
    		font-size:15px;
    		text-align:center;
    		letter-spacing: 2px;}
    .last,h3 {text-align:center;}	
    </style>
    <script type="text/javascript">
    //<![CDATA[
    /******************************
    * SpaceFrog 03.05.2010        *
    * generateur de mots de passe *
    *******************************/
    var chars=new Array( "abcdefghijklmnopqrstuvwxyz".split(''),"abcdefghijklmnopqrstuvwxyz".toUpperCase().split(''),"0123456789".split(''),"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~".split(''));
    function generate(){
    var level=+document.getElementById('niveau').value
    var long=+document.getElementById('lon').value
    if(long<level){alert('La longueur doit être au moins égale au niveau.');
                   return false;}
     
    var rep=new Array();
    myrand=new Date().getMilliseconds();
     
    while(level>1){ 
    	templong=Math.ceil(Math.random(myrand)*(long-(--level))) ;
    	rep.push(templong);
    	long=long-templong;
    	}
    	rep.push(long)
    var password=new Array();
    var i=-1;
    while(rep[++i]){
    	BaseL=chars[i].length
    	j=-1;
    	while((j++<rep[i]-1) && (password.push (chars[i][Math.floor(Math.random(Math.pow(new Date().getMilliseconds(),3))*BaseL)]))){}
    	}
    document.getElementById('res').value=password.sort(sortRand).reverse().sort(sortRand).sort(sortRand).reverse().join('')
    }
    function sortRand(){return (Math.round(Math.random(myrand))-0.5); }
    //]]>
    </script>
    </head>
    <body>
    <div id="cont">
    <div class="field"><h3>SpaceFrog's password generator</h3></div>
    <div class="field"><span class="label">Niveau :</span><select id="niveau">
    	<option value='1'>1</option>
    	<option value='2'>2</option>
    	<option value='3'>3</option>
    	<option value='4'>4</option>
    </select></div>
    <div class="field"><span class="label">Longueur :</span><input type='text' id='lon' value='6' maxLength='2'/></div>
    <div class="field"><span class="label">Mot de passe:</span><input type='text' id='res' value='' readonly="readonly" /></div>
    <div class="last field"><input type="button" onclick="generate()" value = "generation" /></div>
    </div>
    </body>
    </html>

    exemple en ligne ici

    [edit]
    Quelques petites modifs pous ameliorer la répartition par niveau et le random
    [/edit]
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Membre émérite Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Par défaut
    Merci pour tes précieuses connaissances !! bizoooo
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

  3. #3
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Sympa.
    Ca me rappelle que j'étais parvenu à créer en PhP des mots de passe "lisibles". C'est-à-dire quelque chose du genre:

    - matale_2-
    - lutopi_3!

    Au lieu de:

    - k-s12!dsf

    C'était des mots de passe temporaires (genre "j'ai oublié mon mot de passe") facile à manipuler pour les gens qui ne connaissent pas bien les ordinateurs dont le fameux copier/coller.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Je n'arrive pas a trouver une source fiable concernant les caractères spéciaux autorisés dans les mots de passe.

    selon certaines sources on peut utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    selon d'autres les [] et % sont interdits ...

    Existe-t-il une "norme" sur le sujet ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Dernière modification:
    Readonly sur le resulat
    et surtout choix d'une police de caractères permettant de distinguer le zero du O...
    dina, consolas, arial

    je vous recommande d'ailleurs dina pour votre EDI, une police spéciale developpeurs...
    une simple recherche sur google avec "dina font download" vous permettra de la trouver .
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Je ne sais pas trop mais imaginons que tu génères un %20, il se peut que ça devienne un espace lors d'un transfert quelconque.

  7. #7
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Merci Spaffy, c'est du beau boulot comme d'hab
    J'ai été vérifier que tu retirais bien 0.5 au retour de ton Math.random pour répartir correctement les probas... zut tu y avais déjà pensé
    (Par contre du coup en lisant ton code j'ai mieux compris l'utilisation de Array.sort que j'ai tendance à oublier ^^)

    Citation Envoyé par SpaceFrog Voir le message
    je vous recommande d'ailleurs dina pour votre EDI, une police spéciale developpeurs...
    Tiens c'est (presque) le prénom de ma cadette (Dinah)

  8. #8
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Je n'arrive pas a trouver une source fiable concernant les caractères spéciaux autorisés dans les mots de passe.

    selon certaines sources on peut utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    selon d'autres les [] et % sont interdits ...

    Existe-t-il une "norme" sur le sujet ?
    Mots de passe de quoi ?
    Si c'est pour l'ensemble des sites web, c'est mort.

    Certains ne permettent que des chiffres *sigh*, d'autres que des chiffres et des lettres (pas d'espace ni de caractères spéciaux), d'autres forcent l'utilisation de chiffres + miniscules + majuscules + (parfois) caractères spéciaux...

  9. #9
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par Loceka Voir le message
    Mots de passe de quoi ?
    Si c'est pour l'ensemble des sites web, c'est mort.

    Certains ne permettent que des chiffres *sigh*, d'autres que des chiffres et des lettres (pas d'espace ni de caractères spéciaux), d'autres forcent l'utilisation de chiffres + miniscules + majuscules + (parfois) caractères spéciaux...
    Heu... c'est bien la raison d'être du paramètre "level"* qui est présent dans la fonction (voir post initial)

    * il n'est pas directement passé en paramètre à la fonction, il est récupéré dans un champ, mais ce n'est pas bien difficile à modifier comme implémentation ^^

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    J'ai rajouté un petit controle.
    La longueur doit en effet être au moins égale au niveau . Le niveau représentant le nombre de composants entrant dans la génération du mot de passe, on ne peut avoir un niveau 4 et une longueur 3.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Nouvelle modif...
    remplacement de parCar IE (toujours lui) ne reconnait pas l'htmlentity de ' ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Une version mot de passe "lisible"

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
    <title>Password Generator</title>
    <style type="text/css">
    body, html {
    	height:100%;
    	width:100%;
    	overflow:hidden;
    	}
    body{
    	background-color: #8FB480;
    	color: #025D02;}
    #cont {
    	width:450px;
    	margin:20px auto;
    	border: solid 2px #194308;
    	height:auto;
    	overflow:hidden;
    	}
     
    .label {width : 150px;
    		 float:left;
    		 padding:5px 0 15px 15px;
    		 }
     
    .label, h3 { font-family:verdana;
            }
    .field {
    	width: 100%;
    	background-color: #9EEE91 ;
    	padding : 5px 0;
    	float:left;
    	}
    #lon {
    		width:30px;
    		text-align:right;
    		}	
    #res {
    		width:250px;
    		font-family:consolas,dina,arial ;
    		font-size:15px;
    		text-align:center;
    		letter-spacing: 2px;}
    .last,h3 {text-align:center;}	
    </style>
    <script type="text/javascript">
    //<![CDATA[
    /******************************
    * SpaceFrog 03.05.2010        *
    * generateur de mots de passe *
    *******************************/
    cons="bcdfghklmnprstvwxz".split('')
    cons=cons.concat(new Array('ss','tt','ll','nn','mm','pp','ch','qu','gg','cc'))
    var voys=new Array('a','e','i','o','u','ai','au','ou','ei','ui','ey','oi')
    var compo=new Array(voys, cons)
    var BaseL= new Array(voys.length,cons.length)
    function generate(){
    var lon=''+document.getElementById('lon').value
    var rep=new Array();
    var myrand =new Date().getMilliseconds();
    debut=(myrand % 2) == 0
     
    while(--lon > -1){
    	lot=(debut)?0:1;
    	debut= !debut
    	rep.push( compo[lot][ Math.floor(Math.random()*BaseL[lot])])
    	}
    document.getElementById('res').value=rep.join('').replace(/^(\D)\1/,'$1').replace(/(\D)\1$/,'$1').replace(/([aeiouy])\1/,'$1')
     
    }
    //]]>
    </script>
    </head>
    <body>
    <div id="cont">
    <div class="field"><h3>SpaceFrog's password generator</h3></div>
    <div class="field"><span class="label">Longueur :</span><input type='text' id='lon' value='6' maxLength='2'/></div>
    <div class="field"><span class="label">Mot de passe:</span><input type='text' id='res' value='' readonly="readonly" /></div>
    <div class="last field"><input type="button" onclick="generate()" value = "generation" /></div>
    </div>
    </body>
    </html>
    ce qui est marrant est que l'on peut lui donner des accents etranger ...
    Anglais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cons="bcdfghklmnprstvwxz".split('')
    cons=cons.concat(new Array('th','sh','gh','ck','pt','ch','sk','ll','vy'))
    var voys=new Array('a','e','i','o','u','ea','au','oo','oi','ey','ay','ee')
    Japonisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    cons="bcdfghklmnprstvwxz".split('')
    cons=cons.concat(new Array('ki','sh','tu','fu','pu','to','ru','mi','mo'))
    var voys=new Array('a','e','i','o','u')
    var compo=new Array(voys, cons)
    var BaseL= new Array(voys.length,cons.length)
    .../...
    document.getElementById('res').value=rep.join('').replace(/^(\D)\1/,'$1').replace(/(\D)\1$/,'$1').replace(/([aeiouy])[aeiouy]/gi,'$1')
    Italien
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
    <title>Password Generator</title>
    <style type="text/css">
    body, html {
    	height:100%;
    	width:100%;
    	overflow:hidden;
    	}
    body{
    	background-color: #8FB480;
    	color: #025D02;}
    #cont {
    	width:450px;
    	margin:20px auto;
    	border: solid 2px #194308;
    	height:auto;
    	overflow:hidden;
    	}
     
    .label {width : 150px;
    		 float:left;
    		 padding:5px 0 15px 15px;
    		 }
     
    .label, h3 { font-family:verdana;
            }
    .field {
    	width: 100%;
    	background-color: #9EEE91 ;
    	padding : 5px 0;
    	float:left;
    	}
    #lon {
    		width:30px;
    		text-align:right;
    		}	
    #res {
    		width:250px;
    		font-family:consolas,dina,arial ;
    		font-size:15px;
    		text-align:center;
    		letter-spacing: 2px;}
    .last,h3 {text-align:center;}	
    </style>
    <script type="text/javascript">
    //<![CDATA[
    /******************************
    * SpaceFrog 03.05.2010        *
    * generateur de mots de passe *
    *******************************/
    cons="bcdfghklmnprstvwxz".split('')
    cons=cons.concat(new Array('mi','lo','to','fo','zi','ro','mo','sso','ssi','vi','zzo','zzi','bi','li','cci','cco' ))
    var voys=new Array('a','e','i','o','u')
    var compo=new Array(voys, cons)
    var BaseL= new Array(voys.length,cons.length)
    function generate(){
    var lon=''+document.getElementById('lon').value
    var rep=new Array();
    var myrand =new Date().getMilliseconds();
    debut=(myrand % 2) == 0
     
    while(--lon > -1){
    	lot=(debut)?0:1;
    	debut= !debut
    	rep.push( compo[lot][ Math.floor(Math.random()*BaseL[lot])])
    	}
    document.getElementById('res').value=rep.join('').replace(/^(\D)\1/,'$1').replace(/(\D)\1$/,'$1').replace(/[aeiouy]([aeiouy])/gi,'$1').replace(/([^aeiou])$/,'$1'+voys[ Math.floor(Math.random()*(voys.length-1))])
    }
    //]]>
    </script>
    </head>
    <body>
    <div id="cont">
    <div class="field"><h3>SpaceFrog's password generator</h3></div>
    <div class="field"><span class="label">Longueur :</span><input type='text' id='lon' value='6' maxLength='2'/></div>
    <div class="field"><span class="label">Mot de passe:</span><input type='text' id='res' value='' readonly="readonly" /></div>
    <div class="last field"><input type="button" onclick="generate()" value = "generation" /></div>
    </div>
    </body>
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Romain, tes mots générés ne m'étonnent pas. J'ai toujours obtenu des phrases hilarantes avec ton générateurs.

    SpaceFrog, c'est le méthode que j'employais (plus ou moins). Pas mal la rajoute de la localisation. Il ne faut pas faire de jaloux, surtout chez les italiens. Rire, hein.

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Spaffy ma grenouille je t'adore, c'est exactement ce qu'il me fallait
    Juste une 'tite modif pour que la fonction prenne la longueur et le niveau en paramètre et retourne le mot de passe, et hop
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir SPaceFrog.

    Lorsque j'ai vu ton code pour un générateur de mot de passe j'ai été assez surpris par l'usage répétitif du Math.random et cela m'a rappelé que lors de mes débuts en C j'avais un peu joué avec tout cela.

    J'ai passé mes heures de loisir de cette journée à me documenter sur Math.randon et les nombres aléatoires en JavaScript.

    Il ressort de mes lectures que Math.random ne vaut pas grand-chose comme générateur de nombre aléatoire, il existe même une différence de comportement entre les navigateurs et parfois entre les différentes versions d'un navigateur.

    Après avoir un peu joué avec tout cela, il m'est bien entendu venu l'idée de réaliser mon propre générateur de mots de passe.

    Pas de jQuery dans ce coup-là, du JavaScript pur jus !

    C'est ici : [Edit 2010-06-25 11:25] Version 1.1.0
    http://danielhagnoul.developpez.com/...motdepasse.php

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  16. #16
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Pas de jQuery dans ce coup-là, du JavaScript pur jus !
    Mais qu'est-ce que c'est que cet objet Alea que je n'ai vu dans aucune doc ?

    Tout ce qui touche à la génération de l'aléatoire m'intéresse je vais chercher de la doc la-dessus tout de suite ^^

    Merci !

    edit : et de une ^^

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Oui Daniel je savais que random se basait sur un seed et que par conséquent il génère en fait plutot des suites que des nombres aléatoire. D'où l'introduction d'un seed aléatoires dans le random et récupérant les millisecondes au moment du click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myrand=new Date().getMilliseconds();
    Math.random(myrand)
    Ceci étant tu m'apprends également l'existence de alea()
    il ne le reste plus qu'à aller jacqueter à l'est

    Je vais donc me pencher sur cette nouveauté et revoir ma copie en fonction.

    pour cette decouverte


    Daniel,
    Tu as réintégré Mash() dans Alea.js ? Moi j'ai été obligé car il ne va pas cherche la fonction tout seul
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    voici la version avec Alea de Johannes Baagøe -- baagoe@baagoe.com, 2010 http://baagoe.com/en/RandomMusings/javascript/
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
    <script charset="utf-8" src="lib/Alea.js"></script>
    <title>Password Generator</title>
    <style type="text/css">
    body, html {
    	height:100%;
    	width:100%;
    	overflow:hidden;
    	}
    body{
    	background-color: #8FB480;
    	color: #025D02;}
    #cont {
    	width:450px;
    	margin:20px auto;
    	border: solid 2px #194308;
    	height:auto;
    	overflow:hidden;
    	}
     
    .label {width : 150px;
    		 float:left;
    		 padding:5px 0 15px 15px;
    		 }
     
    .label, h3 { font-family:verdana;
            }
    .field {
    	width: 100%;
    	background-color: #9EEE91 ;
    	padding : 5px 0;
    	float:left;
    	}
    #lon {
    		width:30px;
    		text-align:right;
    		}	
    #res {
    		width:250px;
    		font-family:consolas,dina,arial ;
    		font-size:15px;
    		text-align:center;
    		letter-spacing: 2px;}
    .last,h3 {text-align:center;}	
    </style>
    <script type="text/javascript">
    //<![CDATA[
    /********************************************************
    *                SpaceFrog 20.06.2010                   *
    *            generateur de mots de passe                *
    * utilise le générateur de nombres aléatoires           *
    * Alea de Johannes Baagøe -- baagoe@baagoe.com, 2010   *
    * http://baagoe.com/en/RandomMusings/javascript/        *
    ********************************************************/
     
    var Mash = function() {
      var c = 1;
      var h = 0;
     
      var hash = function(data) {
        var norm32 = 2.3283064365386963e-10; // 2^-32
        var a = 2087133;
     
        data = data.toString();
     
        for (var i = 0; i < data.length; i++) {
          h = a * (h + (data.charCodeAt(i) + c) * norm32); // 2^-32
          h -= (c = h | 0);
        }
        h = a * (h + c * norm32);
        return h -= (c = h | 0);
      };
     
      hash.version = 'Mash 0.8';
      return hash;
    };
        var random = new Alea();
        // retourne X tel que : min <= X <= max
        function intRandom(min, max){
            return Math.floor(random() * (max - min + 1) + min);
        }
     
    var chars=new Array( "abcdefghijklmnopqrstuvwxyz".split(''),"abcdefghijklmnopqrstuvwxyz".toUpperCase().split(''),"0123456789".split(''),"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~".split(''));
    function generate(){
    var level=+document.getElementById('niveau').value
    var long=+document.getElementById('lon').value
    if(long<level){alert('La longueur doit être au moins égale au niveau.');
                   return false;}
     
    var rep=new Array();
     
     
    while(level>1){ 
    	templong=intRandom(1,long-(--level)) ;
    	rep.push(templong);
    	long=long-templong;
    	}
    	rep.push(long)
     
    var password=new Array();
    var i=-1;
    while(rep[++i]){
    	BaseL=chars[i].length-1
    	j=-1;
    	while((j++<rep[i]-1) && (password.push (chars[i][intRandom(0,BaseL)]))){}
    	}
    document.getElementById('res').value=password.sort(sortRand).reverse().sort(sortRand).sort(sortRand).reverse().join('')
    }
    function sortRand(){return intRandom(-1,1); }
    //]]>
    </script>
    </head>
    <body>
    <div id="cont">
    <div class="field"><h3>SpaceFrog's password generator</h3></div>
    <div class="field"><span class="label">Niveau :</span><select id="niveau">
    	<option value='1'>1</option>
    	<option value='2'>2</option>
    	<option value='3'>3</option>
    	<option value='4'>4</option>
    </select></div>
    <div class="field"><span class="label">Longueur :</span><input type='text' id='lon' value='6' maxLength='2'/></div>
    <div class="field"><span class="label">Mot de passe:</span><input type='text' id='res' value='' readonly="readonly" /></div>
    <div class="last field"><input type="button" onclick="generate()" value = "generation" /></div>
    </div>
    <input type='button' onclick="this.value=sortRand()" />
    </body>
    </html>
    Je constate une meilleure répartition des types de caractères:
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Cb~ouP9j
    (w2AMm3e
    0fHaF:tw
    vpr3^Cn7
    7gIY2N-h
    v2w5mNm)
    qsTJiO6'
    LP2q,9KX
    T,EHx8XF
    !8/iV{YX
    *D;]7JXo
    mr)x1iNo
    Muu|8<+)
    0O0uy`kH
    HMn1xe-v
    (1HICW;x
    sWh1Z_1P
    Ji[yGc4h
    Azhu299(
    ]kD5kwlI
    2z}Ak@|j
    FO6Tr(Z8
    \wq6uCBF
    8U`hOoST
    ~xWw1xqp
    ;S4cfjP+
    L8l69+16
    &!iE6fyP
    2PA4S`Vl
    j@Z*#_7h
    !6}|4E6d
    7V"JZXz1
    P!f4?JYL
    a1r1T{2s
    E9>e{eID
    .Q~HcR2/
    JmX5D-hE
    :m4mchmF
    bnGo7ns?
    E64_=b0P
    ac}b0f,J
    fI|y4fwj
    jlO7vrl,
    FSZV4@s;
    19WyNzp.
    k5jaz|QM
    *pmGmhF1
    U[st1PQ8
    GcO4S@9H
    @>bE{79v
    zd/11BH4
    p86HHE6"
    k7llsEc%
    9KX2Ah-P
    keVDo?8Y
    bzp|7mUf
    O?n.g7tr
    r5'490Dr
    r4W/RI(I
    Qnjx@cp7
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Vous me donnez l'impression de ne pas avoir lu les commentaires du code et de ne pas avoir regardé les codes sources de la page ?

    Ce sont pourtant les premières choses que je fais lorsque je découvre le travail d'une autre personne.

    Le lien vers Alea est dans le commentaire de la fonction motdepasse() qui est donné en bas de la page web.

    Il suffit d'éditer le code source de ma page et puis de cliquer sur le lien JavaScript pour obtenir le code source de la fonction Alea qui inclut bien Mash.

    Alea est un pseudo random avec seed date par défaut, mais on peut lui donner le seed que l'on veut. Et on peut récupérer le seed utilisé par random.args. À première vue, Alea offre des possibilités et des performances qui me rappellent mes très lointains exercices en C. J'ai choisi de travailler avec Alea mais il y a des concurrents.

    Le problème de Math.random est surtout de ne pas être assez aléatoire en général et de ne pas être uniformément aléatoire sur les différents navigateurs.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. [phpMyAdmin] [phpMyAdmin] Problème mot de passe Root !
    Par StouffR dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 26/09/2014, 11h59
  2. Réponses: 7
    Dernier message: 08/06/2010, 03h27
  3. [VB6] [ADO] [Access] Changer le mot de passe
    Par dlpxlid dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/03/2003, 09h45
  4. Réccupération du mot de passe d'une connexion
    Par zinaif dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/12/2002, 18h32
  5. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16

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