GÉNÉRER UN MOT DE PASS ALÉATOIRE

Signaler
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51040-generer-un-mot-de-pass-aleatoire

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Re,

Tu as nommé ta source "GÉNÉRER UN MOT DE PASS ALÉATOIRE", ne l'oublie pas :)
On peut donc considérer qu'une chaîne entre 8 et 15 caractères est satisfaisante. Inutile d'en générer plus.
MD5 retourne 32 car.

Bref, comme dit plus haut tu sors la "grosse artillerie" pour un truc qui se fait en 1 seule ligne, et qui est bien plus optimisé.
Maintenant, si tu souhaites rester sur ce principe, il pourrait être intéressant de le justifier. Par exemple en tentant de générer des mots de passe facile à retenir pour un humain, que tu complexifierais par l'ajout de caractères spéciaux et de ponctuation, par exemple :

trau20,abraz
?aimy1_@rinette
afer,130vint
...

Dans ce cas l'utilisation d'une fonction serait requise, en travaillant sur une alternance de voyelles / consonnes / car spéciaux.

Cordialement,

Kohntark-
Messages postés
10
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
2 septembre 2010

Salut Kohntark-,

Merci pour ta solution et ton explication. C'est vrai que t'as solution à l'air moins lourde.
Par contre par curiosité tu peux avoir maximum combien de caractères pour le mdp? car avec le md5 la taille se limite un peu je pense...
Sinon merci pour la faute dans mon code ;) je vais actualiser la source.

Salutations
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Salut,

J'enfonce le clou sur la simplicité :)
Ta fonction est particulièrement lourde pour générer une simple chaîne aléatoire (boucle, tableaux, ...)

Un truc comme ça est tout de même mieux tu ne penses pas ?

$passLen = 12;
$pass = substr(md5(uniqid(mt_rand(), true)), 0, $passLen);

en plus c'est au moins 6 fois plus rapide (bon, OK, c'est ultra négligeable sur quelques itérations)

En passant, tu as une erreur dans ton code :
mt_rand(0,count($caracteres))
=>
mt_rand(0,count($caracteres)-1)

Cordialement,

Kohntark-
Messages postés
10
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
2 septembre 2010

Ouai j'ai compris qu'il y a plus simple, et bien sure qu'en ajoutant les caractères en plus de 0 à 9 et les minuscules le test sera plus juste, mais ça ne change rien au fait que ta soluce ne donne pas la possibilité d'avoir des caractères répétés plusieurs fois dans le mdp final, à moins de les écrire plusieurs fois dans ta chaîne...

Enfin bon là c'est un peu une question de gout ;) et de façon de faire.

Comme ça les gens auront plus de choix ;)
Afficher les 9 commentaires