bug #470, use a dedicated lib to generate random bytes

This commit is contained in:
plegall
2016-04-26 11:07:44 +02:00
parent a3c46de751
commit f51ee90c66
11 changed files with 1170 additions and 26 deletions
+11 -26
View File
@@ -62,32 +62,17 @@ if (isset($conf['session_save_handler'])
*/
function generate_key($size)
{
if (
is_callable('openssl_random_pseudo_bytes')
and !(version_compare(PHP_VERSION, '5.3.4') < 0 and defined('PHP_WINDOWS_VERSION_MAJOR'))
)
{
return substr(
str_replace(
array('+', '/'),
'',
base64_encode(openssl_random_pseudo_bytes($size+10))
),
0,
$size
);
}
else
{
$alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$l = strlen($alphabet)-1;
$key = '';
for ($i=0; $i<$size; $i++)
{
$key.= $alphabet[mt_rand(0, $l)];
}
return $key;
}
include_once(PHPWG_ROOT_PATH.'include/random_compat/random.php');
return substr(
str_replace(
array('+', '/'),
'',
base64_encode(random_bytes($size+10))
),
0,
$size
);
}
/**