Bonjour,
Connaissez-vous un bon script
:arrow: rapide
:arrow: top sécu
pour générer des mots de passe du type:
:?:Citation:
rdndw6sw
zw9olm2x
Merci d'avance...
Version imprimable
Bonjour,
Connaissez-vous un bon script
:arrow: rapide
:arrow: top sécu
pour générer des mots de passe du type:
:?:Citation:
rdndw6sw
zw9olm2x
Merci d'avance...
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:
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; } ?>
il marche bien, sur 50000 mdp, aucun doublon !
:bravo: (j'ai testé)
Tu t'est cracké 50 000 itérations 8O
Mais bon tant mieux si sa te convient ! :)
si il y en a d'autres, je suis preneur... :)
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.
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...Code:
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;
cool, ça me plaît aussi, ça pour les mêmes raisons que toi
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".
Ce que tu peux aussi c'est generer un session_id ou md5 et après ne prendre que la longueur qui t'interesse.Citation:
si il y en a d'autres, je suis preneur...
Pour toutes ces fonctions si jamais tu as deux doublons, un truc rapide qui devrait fonctionner c'est shuffle.
Trouvé un jour sur Internet, mais je ne me rappelle plus où...
Code:
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)} ; }
Bonjour,
Et ça ?
http://fr.php.net/manual/fr/function.uniqid.php
beau,ça, je connaissais pas !!Citation:
Envoyé par jeca
Merci :) :)