我将新用户添加到数据库并使用 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
但结果相同。那么,如果有人面临这种情况,究竟如何才能匹配密码。
这就是我所做的一切。
- 在 add.php 上,我使用pHpass方法
HashPassword
对来自 POST 的传入用户密码进行哈希处理并将其保存到数据库中。 - 在 login.php 上,我使用带有两个参数的pHpass方法
CheckPassword
,第一个未散列的用户密码和第二个针对用户名保存在数据库中的散列密码;正如从http://www.openwall.com/phpass/下载的文件中提到的pHpasstest.php
帮帮忙!