使用php创建joomla用户密码?
我正在尝试为Joomla创建一个自定义注册组件,我想知道是否有人知道如何为Joomla创建正确的密码加密?Joomla密码如下所示: fbae378704687625a410223a61c66eb1:VM6DwmVWHTwpquDq51ZXjWWADCIc93MR 我相信是md5(或其他什么)和单向加密?我只是在寻找一个php代码来创建相同的加密 Cheers使用php创建joomla用户密码?,php,joomla,passwords,md5,password-hash,Php,Joomla,Passwords,Md5,Password Hash,我正在尝试为Joomla创建一个自定义注册组件,我想知道是否有人知道如何为Joomla创建正确的密码加密?Joomla密码如下所示: fbae378704687625a410223a61c66eb1:VM6DwmVWHTwpquDq51ZXjWWADCIc93MR 我相信是md5(或其他什么)和单向加密?我只是在寻找一个php代码来创建相同的加密 Cheers//用于加密字符串的函数 功能编码($str) { 对于($i=0;$i+1),用于存储密码的哈希,而不是存储密码本身 为了防止攻击,您应
//用于加密字符串的函数
功能编码($str)
{
对于($i=0;$i+1),用于存储密码的哈希,而不是存储密码本身
为了防止攻击,您应该使用随机salt。此外,使用更强大的哈希算法(如我认为PHP支持的SHA-256)可能是一个好主意。有关更多信息,请参阅
我不知道PHP,但大多数语言都有一个支持md5的库,PHP似乎也支持md5(和其他哈希算法)。我发现:
string md5 ( string $str [, bool $raw_output = false ] )
使用»RSA Data Security,Inc.MD5消息摘要算法计算str的MD5哈希,并返回该哈希
下面是一个例子:
<?php
$password = 'apple';
if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f') {
echo "Password correct";
}
?>
经过更多的搜索,我找到了我的答案,谢谢大家的帮助:)
编辑:我忘了提到在调用JUserHelper之前需要包括这一行:
jimport('joomla.user.helper');来自joomla论坛,这就是背后发生的事情:
生成密码
生成32个随机字符
连接1和2
md5(3)
商店4:2
例如:
生成密码-我们将使用“密码”
生成32个随机字符-我们将使用“WnvTroeiBmd5bjGmmsVUnNjppadH7giK”
连接1和2-密码WnVTroeibmd5bjgmmsvunnjppadh7gik
md5(3)-3c57ebfec712312f30c3fd1981979f58
门店4:2-3c57ebfec712312f30c3fd1981979f58:WnvTroeiBmd5bjGmmsVUnNjppadH7giK
您可以转到/libraries/joomla/user
并查看user.php中的bind()
函数
注册时创建的所有用户密码都将在这里。不要这样做!这不是任何意义上的“加密”,这是简单的模糊处理,即使是最基本的攻击者也无法破解。请检查此->md5()
不再被视为良好做法。现在有更好的方法。
<?php
$password = 'apple';
if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f') {
echo "Password correct";
}
?>
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt);
$password = $crypt.':'.$salt;