我正在更新我的登录模块,以便在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的消息。
答案 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();