PHP - phpass 0.2 troubles



当我的用户在注册和登录时输入密码时,我正在使用phpass。当我在Mac上本地工作时,它可以工作。

但是当我在线时对密码进行哈希处理时,就像它以错误的方式进行哈希处理一样。

我已将本地数据库导入在线数据库。当我在本地时生成的密码在我在线时工作得很好。

所以。。就像我在线使用 phpass 时完全出错一样。

我是这样使用它的:

$hasher = new PasswordHash(8, FALSE);
$password = HashPassword($_POST["password"]);

这会给我这样的结果:

_zzD.NrhAaUmhr6G8i5E //when I'm local
$2a$08$mt3//cn0tqMmug/.tjKeC.AbZhYyj470EY9zSivZvNOtwk4A //when I'm online

当我检查密码时,它是这样的:

$hasher = CheckPassword($_POST["password"], $row["password"]);
//$_POST is ofc. the submitted
//$row is the password for the user from the db.
//the user is found on the username and then im checking password.

我完全不知道出了什么问题。我希望SO上的某个人也有同样的问题。

phpass 支持的首选哈希方法是基于 Blowfish 的 bcrypt,它回退到 BSDI 风格的基于 DES 的扩展哈希,最后回退到 phpass 本身实现的基于 MD5 的加盐和可变迭代计数密码哈希

您的环境可能使用不同的哈希算法。应确保开发和生产环境都支持河豚加密。

作为较弱的替代方案,本文提到:

phpass 本身实现的基于 MD5 的加盐和拉伸哈希在所有系统上都受支持。 phpass 提供了一种强制使用这些"可移植"哈希的方法 - 这是 PasswordHash 构造函数的布尔参数。

PasswordHash构造函数的第二个选项是$portable_hashes它可以强制库生成(较弱的)哈希,这些哈希可以在机器之间安全移动。尝试使用

$hasher = new PasswordHash(8, true);

最新更新