使用 php 创建 joomla 用户密码?
Posted
技术标签:
【中文标题】使用 php 创建 joomla 用户密码?【英文标题】:using php to create a joomla user password? 【发布时间】:2011-02-13 04:45:27 【问题描述】:我正在尝试为 Joomla 创建一个自定义注册组件,我想知道是否有人知道如何为 joomla 创建正确的密码加密? Joomla 密码如下所示:
fbae378704687625a410223a61c66eb1:VM6DwmVWHTwpquDq51ZXjWWADCIc93MR
我认为哪个是 md5(或其他东西)和单向加密?我只是在寻找某种 php 代码来创建相同的加密。
干杯
【问题讨论】:
请检查这个 -> ***.com/questions/35333417/… 【参考方案1】: //function to encrypt the string
function encode5t($str)
for($i=0; $i<5;$i++)
$str=strrev(base64_encode($str)); //apply base64 first and then reverse the string
return $str;
//function to decrypt the string
function decode5t($str)
for($i=0; $i<5;$i++)
$str=base64_decode(strrev($str)); //apply base64 first and then reverse the string
return $str;
在这个函数中,我使用 base64_encode 对字符串进行了 5 次加密,并使用 strrev() 反转了字符串,并通过先反转字符串然后应用 base64_decode() 来解密 5 次。
【讨论】:
不要这样做!这在任何意义上都不是“加密”,这是一种简单的混淆,即使是最基本的攻击者也无法击败。【参考方案2】:+1 用于存储密码的哈希而不是存储密码本身。
为了防止precomputation 攻击,您应该使用随机盐。另外,使用更强的散列算法(例如我认为 PHP 支持的 SHA-256)可能是个好主意。有关更多信息,请参阅Secure hash and salt for PHP passwords。
我不了解 PHP,但大多数语言都有一个支持 md5 和(和其他散列算法)的库,PHP 似乎也支持。我发现了这个:
string md5 ( string $str [, bool $raw_output = false ] )
使用 » RSA Data Security, Inc. MD5 Message-Digest Algorithm 计算 str 的 MD5 哈希,并返回该哈希。
这是一个例子:
<?php
$password = 'apple';
if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f')
echo "Password correct";
?>
【讨论】:
md5()
不再被视为良好做法。现在有更好的方法。【参考方案3】:
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt);
$password = $crypt.':'.$salt;
经过一番搜索,我找到了答案,谢谢大家的帮助:)
编辑:我忘了提到你需要在调用 JUserHelper 之前包含这一行:
jimport('joomla.user.helper');
【讨论】:
【参考方案4】:来自 joomla 论坛,这就是背后发生的事情:
-
生成密码
生成 32 个随机字符
连接 1 和 2
md5(3)
存储 4:2
例子:
-
生成密码 - 我们将使用“密码”
生成 32 个随机字符 - 我们将使用 'WnvTroeiBmd5bjGmmsVUnNjppadH7giK'
连接 1 和 2 - passwordWnvTroeiBmd5bjGmmsVUnNjppadH7giK
md5(3) - 3c57ebfec712312f30c3fd1981979f58
存储 4:2 - 3c57ebfec712312f30c3fd1981979f58:WnvTroeiBmd5bjGmmsVUnNjppadH7giK
【讨论】:
【参考方案5】:你可以去/libraries/joomla/user
看看user.php
里面的bind()
函数
在注册时创建的所有用户密码都会在这里。
【讨论】:
以上是关于使用 php 创建 joomla 用户密码?的主要内容,如果未能解决你的问题,请参考以下文章