Better default function to generate passwords
This commit is contained in:
parent
a72703d316
commit
f32f3ff17f
@ -439,7 +439,7 @@ function encodedecode_dbpassconf($level=0)
|
|||||||
/**
|
/**
|
||||||
* Return a generated password using default module
|
* Return a generated password using default module
|
||||||
*
|
*
|
||||||
* @param boolean $generic true=Create generic password (use md5, sha1 depending on setup), false=Use the configured password generation module
|
* @param boolean $generic true=Create generic password (32 chars/numbers), false=Use the configured password generation module
|
||||||
* @return string New value for password
|
* @return string New value for password
|
||||||
*/
|
*/
|
||||||
function getRandomPassword($generic=false)
|
function getRandomPassword($generic=false)
|
||||||
@ -447,7 +447,48 @@ function getRandomPassword($generic=false)
|
|||||||
global $db,$conf,$langs,$user;
|
global $db,$conf,$langs,$user;
|
||||||
|
|
||||||
$generated_password='';
|
$generated_password='';
|
||||||
if ($generic) $generated_password=dol_hash(mt_rand());
|
if ($generic)
|
||||||
|
{
|
||||||
|
$length = 32;
|
||||||
|
$lowercase = "qwertyuiopasdfghjklzxcvbnm";
|
||||||
|
$uppercase = "ASDFGHJKLZXCVBNMQWERTYUIOP";
|
||||||
|
$numbers = "1234567890";
|
||||||
|
$randomCode = "";
|
||||||
|
if (function_exists('random_int')) // Cryptographic random
|
||||||
|
{
|
||||||
|
$max = strlen($lowercase) - 1;
|
||||||
|
for ($x = 0; $x < abs($length/3); $x++) {
|
||||||
|
$randomCode .= $lowercase{random_int(0, $max)};
|
||||||
|
}
|
||||||
|
$max = strlen($uppercase) - 1;
|
||||||
|
for ($x = 0; $x < abs($length/3); $x++) {
|
||||||
|
$randomCode .= $uppercase{random_int(0, $max)};
|
||||||
|
}
|
||||||
|
$max = strlen($numbers) - 1;
|
||||||
|
for ($x = 0; $x < abs($length/3); $x++) {
|
||||||
|
$randomCode .= $numbers{random_int(0, $max)};
|
||||||
|
}
|
||||||
|
|
||||||
|
$generated_password=str_shuffle($randomCode);
|
||||||
|
}
|
||||||
|
else // Old platform, non cryptographic random
|
||||||
|
{
|
||||||
|
$max = strlen($lowercase) - 1;
|
||||||
|
for ($x = 0; $x < abs($length/3); $x++) {
|
||||||
|
$randomCode .= $lowercase{mt_rand(0, $max)};
|
||||||
|
}
|
||||||
|
$max = strlen($uppercase) - 1;
|
||||||
|
for ($x = 0; $x < abs($length/3); $x++) {
|
||||||
|
$randomCode .= $uppercase{mt_rand(0, $max)};
|
||||||
|
}
|
||||||
|
$max = strlen($numbers) - 1;
|
||||||
|
for ($x = 0; $x < abs($length/3); $x++) {
|
||||||
|
$randomCode .= $numbers{mt_rand(0, $max)};
|
||||||
|
}
|
||||||
|
|
||||||
|
$generated_password=str_shuffle($randomCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (! empty($conf->global->USER_PASSWORD_GENERATED))
|
else if (! empty($conf->global->USER_PASSWORD_GENERATED))
|
||||||
{
|
{
|
||||||
$nomclass="modGeneratePass".ucfirst($conf->global->USER_PASSWORD_GENERATED);
|
$nomclass="modGeneratePass".ucfirst($conf->global->USER_PASSWORD_GENERATED);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user