Page 1 sur 1

Passe perdu en Md5

Posté : 10 août 2011, 18:06
par Poinball
Bonjour ,

J'ai fait ma section membre complète et le mot de passe est stocké en MD5 pour une meilleur sécurité.
Je voudrais faire une section Mot de passe Perdu qui génererais un mot de passe aléatoire et qui lenverrais par email.

La seul section ou j'ai un problème c'est pour généré aléatoirement le mot de passe de 8 ou 10 caractère :S
Auriez-vous un tuto ou un exemple a me montrer ?

Merci !

Re: Passe perdu en Md5

Posté : 10 août 2011, 20:42
par moogli
salut,

tu peux le faire avec array_rand par exemple.

sinon une fonction perso, tu créer un tableau avec tous les caractères utilisables dans ton formulaire (bon dans les deux cas faut le faire ;) ).
tu utilise un for ou un while (avec le nb de caractère voulu) et tu pioche dans le tableaux :)

perso j'ai fait ça (rapido) y a surement moyen de faire mieux !
<?php
function gencode ($lenght = 8) {
    $minchar = range('a','z');
    shuffle($minchar);
    $number = range(0,9);
    shuffle($number);
    $majchar = range('A','Z');
    shuffle($majchar);
    $char = array_merge($minchar,$number,$majchar ,$number);
    shuffle($char);
    $final = '';
    $random_key = array_rand($char,$lenght);
    foreach($random_key as $key ){
        $final .= $char[ $key ];
    }
    $nb = preg_match('`(?!^[0-9]*$)(?!^[a-zA-Z!@#$%^&*()_+=<>?]*$)^([a-zA-Z!@#$%^&*()_+=<>?0-9]{8,16})$`iu', $final);
    if ($nb == 0 ) $final = gencode($lenght);
    else
        return $final;
}

//utilisation 
$mdp = gencode();
//ou
$mdp = gencode('nombre de caractère');
?>
fait gaffe si tu modifie la fonction à vérifier si l'expression régulière match toujours ^^

@+

Re: Passe perdu en Md5

Posté : 11 août 2011, 14:22
par Poinball
Merci ! ;)

Re: Passe perdu en Md5

Posté : 11 août 2011, 19:59
par moogli
de rien

@+