mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-04 22:57:40 +08:00
Inconsistently insecure
Why use a strong random number generator in one place, but not another? I know salts have no cryptographic security requirement, but collisions are less likely if you use one.
This commit is contained in:
@ -336,13 +336,10 @@ class BaseSecurity
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get 20 * 8bits of pseudo-random entropy from mt_rand().
|
// Get 20 * 8bits of pseudo-random entropy from mt_rand().
|
||||||
$rand = '';
|
$rand = openssl_random_pseudo_bytes(20);
|
||||||
for ($i = 0; $i < 20; ++$i) {
|
|
||||||
$rand .= chr(mt_rand(0, 255));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add the microtime for a little more entropy.
|
// Add the microtime for a little more entropy.
|
||||||
$rand .= microtime();
|
$rand .= microtime(true);
|
||||||
// Mix the bits cryptographically into a 20-byte binary string.
|
// Mix the bits cryptographically into a 20-byte binary string.
|
||||||
$rand = sha1($rand, true);
|
$rand = sha1($rand, true);
|
||||||
// Form the prefix that specifies Blowfish algorithm and cost parameter.
|
// Form the prefix that specifies Blowfish algorithm and cost parameter.
|
||||||
|
|||||||
Reference in New Issue
Block a user