Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption Joomla salt增强密码_Encryption_Joomla - Fatal编程技术网

Encryption Joomla salt增强密码

Encryption Joomla salt增强密码,encryption,joomla,Encryption,Joomla,我如何知道用作joomla salt增强密码加密的salt的字符串的值???我对joomla不太熟悉,但大多数salt密码要么包含密码字符串中的salt,以分隔符分隔(通常是$或其他非字母数字字符)。或者它可以存储在db表中的一个单独的列中,Joomla为每个密码生成一个随机salt。在这里,您可以找到有关如何使用joomla方法生成密码的宝贵信息: 从该位可以看出,salt存储在密码后面,并以冒号作为分隔符 $salt = JUserHelper::genRandomPassword(32)

我如何知道用作joomla salt增强密码加密的salt的字符串的值???

我对joomla不太熟悉,但大多数salt密码要么包含密码字符串中的salt,以分隔符分隔(通常是$或其他非字母数字字符)。或者它可以存储在db表中的一个单独的列中,Joomla为每个密码生成一个随机salt。在这里,您可以找到有关如何使用joomla方法生成密码的宝贵信息:

从该位可以看出,salt存储在密码后面,并以冒号作为分隔符

$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("blabla", $salt);
$password = $crypt . ':' . $salt;
[编辑] 我只需要用Zend_Auth编写一个授权验证器,以针对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;

[/EDIT]

在用户表的密码字段中,它是“:”后面的位

公式类似于


password DB field=md5(password+salt)+“:“+salt

如果joomla每次都随机生成salt,那么它究竟如何验证用户的登录。我认为通常情况下,salt密码应该作为常规文本存储在某个地方,您根据该密码的散列版本和散列密码进行验证。

这是不正确的。如果省略了冒号(在数据库中的密码中),Joomla!将采用md5散列密码(请参阅“如何恢复我的管理员密码?”),因此,如果您(真的)希望所有密码都仅在md5中,则需要重写或更改“更改密码”过程。乔姆拉!只要他只从数据库中读取它们,他就不会给它们加盐。你只为我节省了几个小时+1它从数据库中为用户获取哈希salt字符串,取出salt部分,然后再次执行md5(userinput+salt)+:+salt。如果结果是数据库中的字符串,则密码是正确的。