当我的用户在注册和登录时输入密码时,我使用的是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.我完全不知道出了什么问题。我希望上的人也有同样的问题。
发布于 2012-06-13 21:42:19
支持的首选散列方法是基于Blowfish的bcrypt,它使用BSDI样式的扩展的基于DES的散列,以及在phpass本身中实现的基于md5的盐化和可变迭代计数的密码散列。
您的环境很可能正在使用不同的散列算法。您应该确保您的开发和生产环境都支持blowfish加密。
作为一种较弱的替代方案,this文章提到:
所有系统都支持
,这是在phpass本身中实现的基于md5的加盐和拉伸散列。phpass为您提供了一种强制使用这些“可移植”散列的方法--这是PasswordHash构造函数的一个布尔参数。
PasswordHash构造函数的第二个选项是$portable_hashes,它可以强制库生成(较弱的)散列,这些散列可以在机器之间安全地移动。尝试使用
$hasher = new PasswordHash(8, true);https://stackoverflow.com/questions/11015960
复制相似问题