首页 >后端开发 >php教程 >为什么 PHP 的 `password_verify` 返回 False?

为什么 PHP 的 `password_verify` 返回 False?

Linda Hamilton
Linda Hamilton原创
2024-12-04 03:18:12563浏览

Why is PHP's `password_verify` Returning False?

Password_Verify 返回 False 疑难解答

当您使用 PHP 5.5 通过 password_verify 验证哈希密码时,有必要调查潜在原因因为它意外的错误返回。

Column长度考虑

password_verify 的一个常见问题源于数据库中存储的哈希密码的长度。该手册建议将散列密码存储在可容纳 60 个以上字符的列中,其中 255 个字符是最佳选择。如果您的数据库列太短,无法容纳 PHP 密码哈希函数生成的哈希密码,则可能会导致验证结果不正确。

因此,请验证您的数据库列有足够的长度来存储哈希密码。如果该列确实太短,请将其扩展至适当的大小(例如 255 个字符),并确保存储的哈希密码相应更新。

其他故障排除提示

除了列长度之外,可能还有其他因素导致错误返回:

  • 密码哈希不正确:在生成用于存储的哈希密码时,仔细检查您是否使用了正确的哈希函数和盐。
  • 数据类型不匹配:在您的 PHP 代码中,确保用户提供的密码和从数据库检索到的哈希密码都是相同的数据类型(例如,两个字符串)。
  • 尾随空格: 在验证用户提供的密码和哈希密码之前,删除所有尾随空格。
  • 已弃用的函数: 确保您使用的是当前版本的 PHP 和正确的密码哈希函数。避免使用 md5 或 sha1 等已弃用的函数。

以上是为什么 PHP 的 `password_verify` 返回 False?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn