我有一个用户区和管理区的网站。在管理区域中,我有一个用于创建用户的页面和一个用于创建管理员的页面。在用户和管理员的网页,我用下面的代码以哈希密码:phpass CheckPassword使用不同的盐?
$hasher = new PasswordHash(8, false);
$password = $HTTP_POST_VARS['password'];
$hash = $hasher->HashPassword($password);
$HTTP_POST_VARS['password'] = $hash;
对于用户页面,检查密码的代码是:
$hasher = new PasswordHash(8, false);
$check = $hasher->CheckPassword($password, $arrData[$conf['PASSWORD']['FIELD']]);
if ($check) {
//login...
}
这完全正常工作。我的用户密码被散列并正确检查密码。我在管理员登录页面上使用相同的代码,但它不起作用。它从数据库中提取正确的信息,但是当使用CheckPassword时,密码不匹配。我认为这可能与腌制有关,因为密码的开始部分似乎是相同的。
顺便说一下,我使用PHP 4.3。
你为什么使用PHP 4.3? – Martin 2012-08-16 18:17:24
@Martin为什么要这么重要?为什么有人可能被迫使用过时的技术有很多原因。只是帮助OP回答这个问题。 – Matt 2012-08-16 18:19:27