使用php创建joomla用户密码?

使用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),用于存储密码的哈希,而不是存储密码本身 为了防止攻击,您应

我正在尝试为Joomla创建一个自定义注册组件,我想知道是否有人知道如何为Joomla创建正确的密码加密?Joomla密码如下所示:

fbae378704687625a410223a61c66eb1:VM6DwmVWHTwpquDq51ZXjWWADCIc93MR

我相信是md5(或其他什么)和单向加密?我只是在寻找一个php代码来创建相同的加密

Cheers

//用于加密字符串的函数
功能编码($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;