Joomla 3.3.1 bcrypt不一致吗?

时间:2014-07-02 18:52:10

标签: php joomla bcrypt

我正在更新我的登录模块,以便在3.2中使用新的bcrypt方案addet到Joomla。运行JUserHelper::hashPassword("test")会返回:

$2y$10$JlH32nPPCKtqqjuw.2p1X.0orqqSXn28eClz5Z3rDozW.j1KASN/e

但是当从Joomla后端生成密码时

$2y$10$0vJdqZDtIddQAAp2yBT7KOoFJ3BLUHCt3LS8XiZlE3dZftYHORJS2

存储在数据库中。

在我可能错过的东西(盐?)之后,我已经找了几天,但我不确定Joomla是如何处理它的

我已阅读并尝试了Joomla 3.2.1 password encryption的消息。

2 个答案:

答案 0 :(得分:3)

hashPassword()的每次使用都会生成一个不同盐的密码,因此即使使用相同的密码,结果值也总是不同的......这是故意让它更多攻击者很难。

这就是为什么你有一个verifyPassword()方法来检查输入密码的有效性

答案 1 :(得分:0)

我必须像j3.4这样工作:

$user = JFactory::getUser();
$testingPlainPass = "test";
$verifyPass = JUserHelper::verifyPassword($testingPlainPass, $user->password, $user->id);
if($verifyPass) {echo "So gud!";}

和酷方法改变传递:

$user = JFactory::getUser();
$user->password = JUserHelper::hashPassword($newpassPlainText);
$user->save();