[英]using php to create a joomla user password?
我正在尝试为Joomla创建一个自定义注册组件,我想知道是否有人知道如何为joomla创建正确的密码加密? Joomla密码看起来像这样:
fbae378704687625a410223a61c66eb1:VM6DwmVWHTwpquDq51ZXjWWADCIc93MR
我相信md5(或其他东西)和单向加密? 我只是在寻找各种PHP代码来创建相同的加密。
干杯
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt);
$password = $crypt.':'.$salt;
经过一番搜索,我找到了答案,谢谢你的帮助:)
编辑:我忘了提到你需要在调用JUserHelper之前包含这一行:
jimport( 'joomla.user.helper');
来自joomla论坛,这就是背后发生的事情:
例:
+1用于存储密码的哈希值,而不是存储密码本身。
为防止预计算攻击,您应该使用随机盐。 另外,使用更强大的散列算法(如SHA-256)可能是一个好主意,我认为它支持PHP。 有关更多信息,请参阅用于PHP密码的Secure hash和salt 。
我不懂PHP,但是大多数语言都有一个支持md5的库和(以及其他哈希算法),PHP似乎也是如此。 我找到了这个:
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";
}
?>
您可以转到/libraries/joomla/user
并查看user.php
的bind()
函数
注册时间内创建的所有用户密码都将在此处。
//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次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.