使用 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 用户密码?的主要内容,如果未能解决你的问题,请参考以下文章

将用户帐户从Joomla迁移到Django

Joomla PHPmaker身份验证

Joomla 3和VM密码重置重定向到VM寄存器

回复:Joomla/PHP/Java/AJAX

PHP 中的 Joomla 独立脚本 - 握手

linux 创建用户,免密sudo,ssh免密登录