0

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

如果我在同一页面上创建/散列密码“123”http://localhost/add.php并使用 pHpass 的 CheckPassword 方法检查密码,它会说密码很好。但是如果我检查之前创建的哈希密码,在http://localhost/add.php上创建http://localhost/login.php,它说密码无效。这是什么?

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

Iteration Count = 8
Portable Hashes = FALSE

我也尝试了便携式Hashes = TRUE但结果相同。那么,如果有人面临这种​​情况,究竟如何才能匹配密码。


这就是我所做的一切。

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

帮帮忙!

4

1 回答 1

1

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

于 2015-12-31T06:22:46.097 回答