使用password_hash()
创建密码很容易,如何重置此密码可能仍然不是一个明确的过程。
有没有办法重置哈希的密码,还是有其他正确的方法呢?
创建密码:
$password = $_POST['password'];
$hash_password = password_hash($password, PASSWORD_DEFAULT);
$sql=("INSERT INTO .....
重设密码:
$new_password = $_POST['new_password'];
$hash_new_password = password_hash($new_password, PASSWORD_DEFAULT);
$sql=("UPDATE .....
我相信缺少一些东西。 。 。请建议
感谢您的帮助。 以下是更新后的代码:
$pass = $_POST['password'];
$password = password_hash($pass, PASSWORD_DEFAULT);
答案 0 :(得分:0)
已修改
我不确定你是否理解password_hash
实际做了什么。
它是one-way hashing algorithm。这意味着您只能对其进行加密,但您无法对其进行解密。
这是一种情况:
1)用户正在注册,他设置了他的登录名和密码。然后使用password_hash
加密密码并将哈希值保存到数据库中。
2)后来他来了并想登录。好吧,他写了密码,你验证了密码并用password_verify
保存了哈希
$test = password_hash('test',PASSWORD_BCRYPT);
var_dump(password_verify('test',$test));
3)如果用户忘记了密码(如果是这种情况)你给他发了一封电子邮件来重置他的密码并保存一个新的密码哈希值。 (这是我打赌你知道的一个过程。)
虽然,如果你没有处理密码,但是让我们说你可能希望能够解密某人发送给你的邮件。在这种情况下,您希望使用公钥/私钥。我发现this video有助于理解这个理论。