Générerateur de mots de passe ou d'autres chaînes de caractères totalement aléatoires

Soyez le premier à donner votre avis sur cette source.

Vue 9 663 fois - Téléchargée 621 fois

Description

DBRandomPassword V 1.0 est une nette amélioration d'une méthode possible utilisant la fonction rand() pour générer des mots de passe aléatoires, basée cette fois-ci sur la fonction mt_rand().

Avec la fonction rand(), j'obtenais un doublon au bout de 1000 mots de passe générés en moyenne (sur une chaîne de 8 caractères).
Non satisfait de ce résultat car j'avais besoin de générer des mots de passe avec une moindre chance de retrouver des doublons pour un site commercial, j'ai renouvelé l'expérience avec la fonction mt_rand().

en installant le zip, vous aurez une bonne démo des possibilités de ce script ...

Source / Exemple :


// voici l'extrait qui permet de générer aléatoirement les mots de passe

$NbCar = 8; 
$Echantillon
= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
for($i=0; $i<$NbCar; $i++){ 
	$pass .= $Echantillon[mt_rand()%strlen($Echantillon)]; 
}

Conclusion :


Pour ceux qui désirent tester la méthode mt_rand() en installant mon script, j'ai initialisé la longueur des mots de passe à 3 caractères.
Je vous conseille de ne pas tester cette fonction avec des chaînes trop longues, car le nombre de combinaisons s'accroît fortement à mesure que l'on augmente la taille des mots de passe et vous risqueriez d'y passer du temps...

Pour info, j'ai testé ce script sur un quadriprocesseur et j'ai réussi à générer plus de 500000 mots de passe différents (sur une chaîne de 8 caractères) dans ma BDD avant de me lasser et d'en arrêter là sans avoir généré de doubles!!! Je ferai prochainement le test à plus grande échelle.

Faites le test vous même en installant le petit script fourni dans le zip ... il s'arrête dès qu'un doublon est généré et vous fait un rapport.
J'attends vos résultats et commentaires ...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
29
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
6 février 2009

Un grand merci pour ce code, qui m'a permis de ne pas perdre mon temps à trouver comment gérer un mot de passe aléatoire (le temps,c'est de l'argent ^^).

Pour répondre à DEFKRIE, en effet le mot de passe créé ne sera pas forcément unique, mais en même temps, je ne vois pas l'utilité d'avoir un mot de passe unique : si deux personnes ont le mot de passe "g6T8ZE42", penses-tu pour autant qu'ils pourront se connecter sur le compte de l'autre, sans même savoir que quelqu'un a le même mot de passe ? Avec un nom d'utilisateur identique là en effet, ça poserait de graves problèmes. Mais pas avec un mot de passe ;)
Messages postés
435
Date d'inscription
vendredi 20 septembre 2002
Statut
Membre
Dernière intervention
20 novembre 2004

ouias je suis peut etre allé un peu fort (réveil difficile)mais le dico permet par exemple d'avoir toutes les combinaisons possibles selon une chaine établie.
Un exemple jai un site ou le nom de l'utlisateur est de 1 à 5 characteres composé parmi ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

le dico va ainsi créer toutes les posssiblités quand à ton script il va seuleument généré des possiblités aléatoires sans etre sur qu'il existe déja.

Voila cest tout et bonne chance pour la suite
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
13
La fonction "uniqid()" ne se débouille pas mal non plus !!!
Messages postés
8
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
3 janvier 2006

Je suis ptdr ;)
trop fort ce mavounet ...
Si ça c'est pas de la mise à mort ...
defkrie, y'a des jours, on ferait bien de pas se lever n'est-ce pas ?
Bonne continuation mav, je suis déjà en train de revoir mon système d'authentification en compilant ton script d'authentification et celui-ci pour générer les mots de passe par défaut de mes abonnés.
Thx man++
Messages postés
22
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
13 juin 2004

defkrie,
Le but de ce script (je me répète) est de mettre à la portée de tout le monde une façon simple de générer des mots de passe qui soient efficacement aléatoires.
En effet, les autres sources dont tu me parle n'arrivent pas à la cheville de celui là en terme de "hasard", puisque basées sur la fonction rand().
Le but de cette source est également de vérifier en pratique l'efficacité du mt_rand() avec une petite appli toute simple qui te permet de populer une base.
Ta solution de générer un dictionnaire n'est pas idiote et facilement réalisable, mais ce n'est pas le but recherché car, en terme de sécurité (dasn le cas de l'utilisation de ce script pour un système d'inscription) il n'est pas judicieux de permettre à un utilisateur x de pouvoir déduire le mot de passse de y qui s'inscrit juste après.
J'espère que tu me suis toujours ... car je te donne un exemple concret :

Ex : sur un site qui publie la liste de ses derniers inscrits du style :
"Derniers inscrits : toto, titi, tata ..."

Ton système permettrai facilement à toto de se loguer avec le compte de titi en incrémentant son propre mot de passe... et etc pour tous tes membres. Imagine la belle pagaille. Désolé, mais ce que tu crois être plus judicieux n'est pas un bon choix en terme de confidentialité dans un système d'information. Et dieu c'est si elle est importante, cela se vérifie chaque jour en pratique dans chaque SI de chaque entreprise et de chaque administration ...
Peut-être en manques-tu simplement ...

ps: (pour te copier) 8^62 .. CORRECT !
Bien ;-) tu n'es pas encore tout à fait le maillon faible...
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.