我怎么知道用作joomla salt增强密码加密的盐的字符串值?
答案 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每次都在随机生成盐,那么它在世界上如何验证用户对它的登录。我认为通常盐渍密码应该作为常规文本存储在某处,并且您根据哈希版本和散列密码验证。