首页 > 后端开发 > php教程 > 尽管凭据正确,为什么 PHP 的 `password_verify()` 返回 False?

尽管凭据正确,为什么 PHP 的 `password_verify()` 返回 False?

DDD
发布: 2024-12-03 20:19:16
原创
759 人浏览过

Why Does PHP's `password_verify()` Return False Despite Correct Credentials?

Password_verify 始终返回 False

PHP 5.5 的用户偶尔会遇到来自password_verify() 函数的意外错误返回值。

问题

考虑以下代码snippet:

// get result row (as an object)
$result_row = $result_of_login_check->fetch_object();

// using PHP 5.5's password_verify() function to check if the provided password fits
// the hash of that user's password
if (password_verify($_POST['user_password'], $result_row->user_password_hash)) {
    // ...
}
登录后复制

尽管验证了 $_POST['user_password'] 和 $result_row->user_password_hash 值是否正确,password_verify() 仍然返回 false。

解决方案

该问题通常是由于列长度不足以在数据库中存储哈希密码而引起的。 PHP 手册建议使用容量至少为 255 个字符的列,因为哈希密码的长度可能超过 60 个字符。

要解决此问题,请确保用于存储哈希密码的数据库列具有足够的长度。将列定义更新为 255 或更长的长度应该可以解决该问题并允许 password_verify() 正常运行。

以上是尽管凭据正确,为什么 PHP 的 `password_verify()` 返回 False?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板