匹配 pHpass 生成的散列密码的问题

Issue to match pHpass generated hashed passwords

我将新用户添加到数据库并使用 pHpass 散列用户密码。在这一点上我遇到了奇怪的问题。

如果我 create/hash 在 http://localhost/add.php 上输入密码 '123' 并在同一页面上使用 pHpass 的 CheckPassword 方法检查密码,它会说密码正确。但是如果我检查之前创建的哈希密码,创建于 http://localhost/add.php,在 http://localhost/login.php,它说密码无效。这是什么?

我的 pHpass 3.0(下载自:http://www.openwall.com/phpass/)设置为

Iteration Count = 8
Portable Hashes = FALSE

我也用 Portable Hashes = TRUE 尝试过,但结果相同。那么,如果有人遇到这种情况,究竟如何才能匹配密码。


以下是我的全部做法。

  1. 在 add.php 我使用 pHpass 方法 HashPassword 对来自 POST 的传入用户密码进行哈希处理并将其保存到数据库中。
  2. 在 login.php 我使用 pHpass 方法 CheckPassword 有两个参数,第一个未散列的用户密码和第二个散列的密码保存在数据库中的用户名;就像从 http://www.openwall.com/phpass/
  3. 下载的 test.php 文件中提到的 pHpass

帮帮我!

是的,如果您在添加时将密码存储在哈希值中,而不是每当您需要从 login.php 登录时,您将首先将密码值转换为哈希值,然后将其与存储的值进行比较,它会起作用.