Modif pour rendre plus modulaire la fonction de fabrication d'un mot de passe

This commit is contained in:
Laurent Destailleur 2006-11-25 21:51:17 +00:00
parent 3ee2424bde
commit 46a875111f
2 changed files with 51 additions and 30 deletions

View File

@ -1854,34 +1854,6 @@ function yn($yesno, $case=1) {
}
/**
\brief Fonction pour créer un mot de passe aléatoire
\param longueur longueur du mot de passe (8 par defaut)
\param sel donnée aléatoire
\remarks la fonction a été prise sur http://www.uzine.net/spip
*/
function creer_pass_aleatoire($longueur = 8, $sel = "") {
$seed = (double) (microtime() + 1) * time();
srand($seed);
for ($i = 0; $i < $longueur; $i++) {
if (!$s) {
if (!$s) $s = rand();
$s = substr(md5(uniqid($s).$sel), 0, 16);
}
$r = unpack("Cr", pack("H2", $s.$s));
$x = $r['r'] & 63;
if ($x < 10) $x = chr($x + 48);
else if ($x < 36) $x = chr($x + 55);
else if ($x < 62) $x = chr($x + 61);
else if ($x == 63) $x = '/';
else $x = '.';
$pass .= $x;
$s = substr($s, 2);
}
return $pass;
}
/**
\brief Fonction pour initialiser un salt pour la fonction crypt
\param $type 2=>renvoi un salt pour cryptage DES

View File

@ -927,8 +927,8 @@ class User
if (! $password)
{
// TODO Mettre appel au module de génération de mot de passe
$longueurmotdepasse=8;
$password = strtolower(substr(md5(uniqid(rand())),0,$longueurmotdepasse));
$password=creer_pass_aleatoire_1('');
//$password=creer_pass_aleatoire_2('');
}
// Cryptage mot de passe
@ -1389,4 +1389,53 @@ class User
}
}
/**
\brief Fonction pour créer un mot de passe aléatoire en minuscule
\param sel Donnée aléatoire
\return string Mot de passe
*/
function creer_pass_aleatoire_1($sel = "")
{
$longueur = 8;
return strtolower(substr(md5(uniqid(rand())),0,$longueur));
}
/**
\brief Fonction pour créer un mot de passe aléatoire mélangeant majuscule,
minuscule, chiffre et alpha et caractères spéciaux
\remarks La fonction a été prise sur http://www.uzine.net/spip
\param sel Donnée aléatoire
\return string Mot de passe
*/
function creer_pass_aleatoire_2($sel = "")
{
$longueur=8;
$seed = (double) (microtime() + 1) * time();
srand($seed);
for ($i = 0; $i < $longueur; $i++)
{
if (!$s)
{
if (!$s) $s = rand();
$s = substr(md5(uniqid($s).$sel), 0, 16);
}
$r = unpack("Cr", pack("H2", $s.$s));
$x = $r['r'] & 63;
if ($x < 10) $x = chr($x + 48);
else if ($x < 36) $x = chr($x + 55);
else if ($x < 62) $x = chr($x + 61);
else if ($x == 63) $x = '/';
else $x = '.';
$pass .= $x;
$s = substr($s, 2);
}
return $pass;
}
?>