Joomla salt增强了密码

时间:2009-08-11 16:00:10

标签: encryption joomla

我怎么知道用作joomla salt增强密码加密的盐的字符串值?

4 个答案:

答案 0 :(得分:9)

Joomla为每个密码生成一个随机盐。在这里,您可以找到有关如何使用joomla方法生成密码的有用信息:

http://forum.joomla.org/viewtopic.php?f=476&t=308499

从该位可以看出,盐存储在密码之后,冒号为分隔符。

$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("blabla", $salt);
$password = $crypt . ':' . $salt;

[编辑] 我只需要用Zend_Auth编写一个Authorisiation Validator来验证Joomla(1.0)的安装,我想我会在这里更新有关它的信息。我的代码片段。

$dbAdapter = Zend_Registry::get('jdb');
$this->_authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$this->_authAdapter->setTableName('jos_users')
->setIdentityColumn('username')
->setCredentialColumn('password');

//Joomla 1.0 uses hashes in the form md5(passwort + salt) + salt
$users = new Users();
$hash = $users->getHash($value);
$salt = substr($hash, strpos($hash, ':') + 1);
$password = md5($context['password'] . $salt) . ':' . $salt;

[/编辑]

答案 1 :(得分:2)

在users表的密码字段中,它位于“:”

之后

公式类似于

密码DB字段= md5(密码+盐)+“:”+ salt

答案 2 :(得分:0)

特别不熟悉joomla,但大多数盐渍密码要么在密码字符串中包含salt,要分隔我的分隔符(通常为$或其他非字母数字字符)。或者它可以存储在db表的单独列中

答案 3 :(得分:0)

如果joomla每次都在随机生成盐,那么它在世界上如何验证用户对它的登录。我认为通常盐渍密码应该作为常规文本存储在某处,并且您根据哈希版本和散列密码验证。