首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP - phpass 0.2故障

PHP - phpass 0.2故障
EN

Stack Overflow用户
提问于 2012-06-13 21:32:09
回答 1查看 142关注 0票数 0

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

但是,当我在网上散列密码时,它就像是在以错误的方式散列。

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

所以..。当我在线使用phpass时,感觉好像出了什么问题。

我是这样使用它的:

代码语言:javascript
复制
$hasher = new PasswordHash(8, FALSE);
$password = HashPassword($_POST["password"]);

这会给我一些类似的东西:

代码语言:javascript
复制
_zzD.NrhAaUmhr6G8i5E //when I'm local
$2a$08$mt3//cn0tqMmug/.tjKeC.AbZhYyj470EY9zSivZvNOtwk4A //when I'm online

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

代码语言:javascript
复制
$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.

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-13 21:42:19

支持的首选散列方法是基于Blowfish的bcrypt,它使用BSDI样式的扩展的基于DES的散列,以及在phpass本身中实现的基于md5的盐化和可变迭代计数的密码散列。

您的环境很可能正在使用不同的散列算法。您应该确保您的开发和生产环境都支持blowfish加密。

作为一种较弱的替代方案,this文章提到:

所有系统都支持

,这是在phpass本身中实现的基于md5的加盐和拉伸散列。phpass为您提供了一种强制使用这些“可移植”散列的方法--这是PasswordHash构造函数的一个布尔参数。

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

代码语言:javascript
复制
$hasher = new PasswordHash(8, true);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11015960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档