Générateur de mot de passe

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Générateur de mot de passe

Re: Générateur de mot de passe

par sylvaing26 » 01 mars 2010, 17:15

Yes ça me paraît bien :)
:lol: Merci beaucoup
C'est tout bête mais defois un oeil exterieur est de bonne aide !

Re: Générateur de mot de passe

par ouckileou » 01 mars 2010, 16:42

Yes ça me paraît bien :)

Re: Générateur de mot de passe

par sylvaing26 » 01 mars 2010, 16:39

A ok en effet je viens de cerner le problème, j'y avais pensé en + mais je voyait pas ou ca pouvait clocher

Donc après correction ca c'est bon ?
function genereCode($x){
   $caracteresValides = "abc";
   $password = "user_";
   
   mt_srand((double) microtime() * 1000000);
   for ($i=0;$i<$x;$i++){
          $nb = strlen($caracteresValides) - 1;
          $rand = mt_rand(0,$nb);
          echo '<br />';
          echo 'nb aléatoire : '.$rand.'<br />';
          echo 'correspond à la lettre : '.substr($caracteresValides, $rand, 1).'<br />';
      $password .= substr($caracteresValides, $rand, 1);
   }
   return $password;
}
$identifiant = genereCode(6);

Re: Générateur de mot de passe

par ouckileou » 01 mars 2010, 14:03

J'ai décomposé ton code et réduit la chaîne, tu devrais voir d'où vient le problème :
<?php
function genereCode($x){
   $caracteresValides = "abc";
   $password = "user_";
   
   mt_srand((double) microtime() * 1000000);
   for ($i=0;$i<$x;$i++){
	  $rand = mt_rand(0,strlen($caracteresValides));
	  echo '<br />';
	  echo 'nb aléatoire : '.$rand.'<br />';
	  echo 'correspond à la lettre : '.substr($caracteresValides, $rand, 1).'<br />';
      $password .= substr($caracteresValides, $rand, 1);
   }
   return $password;
}
$identifiant = genereCode(6);
?>
Remarques :
mt_srand() ne sert à rien au dessus de PHP 4.2.0 :
Note: Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement.
Ta chaîne de caractères valides ne bouge pas, pourquoi recalculer la longueur avec strlen() à chaque tour de boucle ?

Générateur de mot de passe

par sylvaing26 » 01 mars 2010, 13:25

Bonjour à tous,
j'ai ce générateur de mot de passe, que j'ai configuré pour avoir 6 caracteres après user_
J'ai remarqué que de temps en temps, il me sort que 5 caractères .... je ne comprend pas trop pourquoi

Merci beaucoup de m'aider à eclairer ma lanterne :lol:
function genereCode($x){
   $caracteresValides = "abcdefghijklmnopqrstuvwxyz0123456789";
   $password = "user_";
   mt_srand((double) microtime() * 1000000);
   for ($i=0;$i<$x;$i++){
      $password .= substr($caracteresValides, mt_rand(0,strlen($caracteresValides)), 1);
   }
   return $password;
}
$identifiant = genereCode(6);