2010-04-28 68 views
8

我想为Joomla创建一个自定义注册组件,并且我想知道是否有人知道如何为joomla创建正确的密码加密?的Joomla的密码是这样的:使用PHP来创建一个joomla用户密码?

fbae378704687625a410223a61c66eb1:VM6DwmVWHTwpquDq51ZXjWWADCIc93MR

我相信这是MD5(或其它)和一个单向加密?我只是在寻找一个php代码来创建相同的加密。

干杯

+0

请检查 - > http://stackoverflow.com/questions/35333417/joomla-3-4-password-generation-method/35337002#35337002 – Joomler 2016-06-27 10:30:31

回答

11
$salt = JUserHelper::genRandomPassword(32); 
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt); 
$password = $crypt.':'.$salt; 

后多一点搜索,我发现我的答案,谢谢你们的帮助:)

编辑:我忘了提,你需要包括此行在致电JUserHelper之前:

jimport('joomla.user。帮手');

+0

这不适用于joomla 3.4 – 2016-03-20 16:08:31

-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; 
    } 

在这个函数中,我已经加密的字符串5次BASE64_ENCODE和逆转与strrev字符串()和用于通过第一反转字符串然后施加BASE64_DECODE解密5倍()。

+3

**不要做这个!**这不是“加密“无论如何,这是简单的混淆,即使是最基本的攻击者也不会失败。 – 2015-12-14 20:46:51

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数据安全公司的MD5消息摘要算法str的MD5哈希值,并返回该散列。

下面是一个例子:

<?php 
$password = 'apple'; 

if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f') { 
    echo "Password correct"; 
} 
?> 
12

从的Joomla论坛,这背后究竟发生了:

  1. 生成一个密码
  2. 生成32个随机字符
  3. 串接1和2
  4. MD5(3)
  5. 店4:2

例如:

  1. 生成密码 - 我们将使用 '密码'
  2. 32个生成随机字符 - 我们将使用 'WnvTroeiBmd5bjGmmsVUnNjppadH7giK'
  3. 串接1和2 - passwordWnvTroeiBmd5bjGmmsVUnNjppadH7giK
  4. MD5(3) - 3c57ebfec712312f30c3fd1981979f58
  5. 店4:2 - 3c57ebfec712312f30c3fd1981979f58:WnvTroeiBmd5bjGmmsVUnNjppadH7giK
1

你可以去/libraries/joomla/user和请参见bind()功能user.php

注册时间创建的所有用户密码都将在此处。

相关问题