我正在为这样的 php crypt函数生成盐
$hashSalt = substr(md5(time().uniqid(rand())),0, 22);
$hashedPassword = crypt('SmithJohn', '$2a$07$'.$hashSalt.'$');
据我了解,这是一个很好的方法。你觉得呢?你有没有什么想法?
我正在为这样的 php crypt函数生成盐
$hashSalt = substr(md5(time().uniqid(rand())),0, 22);
$hashedPassword = crypt('SmithJohn', '$2a$07$'.$hashSalt.'$');
据我了解,这是一个很好的方法。你觉得呢?你有没有什么想法?
太复杂,也不一定足够随机。使用为此目的制作的资源:
mcrypt_create_iv($salt_len, MCRYPT_DEV_URANDOM)
或者
openssl_random_pseudo_bytes($salt_len)
或者
$buffer = '';
$f = fopen('/dev/urandom', 'r');
$read = strlen($buffer);
while ($read < $salt_len) {
$buffer .= fread($f, $salt_len - $read);
$read = strlen($buffer);
}
fclose($f);
最好全部用作几层fallback,如https://github.com/ircmaxell/password_compat/blob/master/lib/password.php#L84