这是我的密码加密脚本:
/*....salting starts........*/
$cost = 10;
$salt = strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
//$salt = sprintf("$2a$%02d$", $cost) . $salt;
$options = array('cost' => $cost,'salt' => $salt);
//$password = crypt($data['password'], $salt);
$hash = password_hash($password, PASSWORD_DEFAULT,$options);
/*..........salting ends..............*/
和这样的验证:
if (password_verify($this->password, $hashAndSalt)==true) {
$status = "verified";
$logged_in = 1;
}else
{
$status = "not verified";
$logged_in = 0;
}
以上工作完全正常localhost但不适用于实时服务器。 我想我的服务器低于PHP 5.0,我猜MCRYPT_DEV_URANDOM只适用于php 5.6及以上版本?
请问MCRYPT_DEV_URANDOM的替代方案是什么,而无需更改验证方法?