我修改了我的旧帖子。我尝试了 crypt() 函数,现在尝试使用 password_hash() 和 password_verify() 来验证来自数据库的加密密码,但是在每次调用时,password_hash() 函数会重新调整不同的加密字符串,而 password_verify() 无法匹配它。
我就是这样做的。
//please ignore the syntax error if any
$data = '11';
$dbpass = password_hash($data, PASSWORD_BCRYPT);
echo $dbpass; // displays the random strings on each page refresh.
一旦密码保存到数据库中,在登录过程中就不会匹配。下面是我的实际功能。
private function process_data($password){
$password = __STR.$password.__STR;
return password_hash($password, PASSWORD_BCRYPT);
}
private function processed($login_password, $dbpassword){
$login_password = __STR.$login_password.__STR;
return password_verify($login_password, $dbpassword);
}
在每次为密码创建散列字符串的函数调用中,该函数下一次返回不同的字符串。