PHP Password verify always returns false(PHP密码验证总是返回false)
问题描述
我正在使用 PHP 的密码哈希 API 在我正在构建的网站上哈希和验证我的密码,但是每当我尝试验证我的密码时,它总是返回 false.
I'm using PHP's password hashing API to hash and verify my passwords on a site I'm building, however whenever I try and verify my password it always returns false.
我有一个 User 类,它在将密码插入数据库之前设置密码:
I have a User class which sets the password before they are inserted into the database:
public function set__password($passwd) {
self::$password = password_hash($passwd, PASSWORD_BCRYPT, array('cost' => 12));
}
如果用户名和电子邮件是唯一的,则插入新用户行 - 检查我的数据库时,我的密码似乎是有效的 BCRYPT 字符串:
If the username and email is unique the new user row is inserted - upon checking my database I have what seems to be a valid BCRYPT string for my password:
$2y$12$lTMEP0wevDEMX0bzStzoyOEzOTIAi3Hyhd3nYjGwzbI
为了验证我的密码,我运行以下脚本:
To verify my password, I run the following script:
$username = $_POST['username'];
$password = $_POST['password'];
$DB = Database::getInstance();
// Get the stored password hash
$res = $DB->run__query('SELECT password FROM users WHERE username = "' . $username . '"');
$hash = $res[0]['password'];
// Do the passwords match?
if(password_verify($password, $hash)) {
echo 'success';
} else {
echo 'failed';
}
$hash
属于上面引用的字符串,但是当我随后调用 password_verify($password, $hash)
其中 $password
是从我的输入字段中检索到的纯文本密码,我总是收到一个 false 值.
$hash
pertains to the string quoted above, however when I then call password_verify($password, $hash)
where $password
is the plain-text password retrieved from my input field, I always receive a value of false.
推荐答案
给定的哈希字符串示例有 50 个字符而不是 60 个字符.仔细检查数据库 - CHAR(60) - 和 var_dump($hash).
The given hash string example has 50 characters instead of 60. Double-Check the database - CHAR(60) - and var_dump($hash).
这篇关于PHP密码验证总是返回false的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:PHP密码验证总是返回false
基础教程推荐
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01