【发布时间】:2017-01-18 22:37:13
【问题描述】:
我正在尝试使用openssl_random_pseudo_bytes 构建一个简单的密码生成函数,并想知道它是否具有加密强度。
function randomPassword($length = 12) {
mt_srand( hexdec( bin2hex( openssl_random_pseudo_bytes(256) ) ) );
$alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$&*-_=+.?';
$pass = '';
$alphaLength = strlen($alphabet) - 1;
for ($i = 0; $i < $length; $i++) {
$n = mt_rand(0, $alphaLength);
$pass .= $alphabet[$n];
}
return $pass;
}
我会假设,如果 mt_rand 函数中存在直到的弱点,则不管用 openssl_random_pseudo_bytes 播种它。但是,我一直找不到关于该主题的任何讨论。
【问题讨论】:
-
它只有在存储时才安全。充其量,我只会用它来生成(一次性)验证令牌,而不是用它来存储密码,如果是这样的话。
-
对,这只是给用户一个随机密码。存储是完全不同的生物(散列等)。
标签: php cryptography password-generator