我修改了我的旧帖子.我尝试了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.
Run Code Online (Sandbox Code Playgroud)
一旦密码保存到数据库中,在登录过程中就不会匹配.以下是我的实际功能.
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);
}
Run Code Online (Sandbox Code Playgroud)
在为密码创建散列字符串的每个函数调用中,该函数下次返回不同的字符串.