Joomla登录验证,密码加密方式

Joomla的密码不是简单的用MD5加密。

数据库中的密码是这样存储的:(用户名和密码都是admin)

ab9989726cacc2a382866650fe6c809d:64tjXqkuMhKth3GK9o6uBMilMTJhKJIe
中间是有冒号分开的,我们把第一部分记为part1    第二部分记为part2

即:

part1:part2

虽然我们不知道part2是怎么加密来的(如果有哪位知道,还请指点一下!)

但是通过看joomla的源代码,可以知道part1是这样来的  part1=md5(username.part2);

我们可以写自己的函数来验证用户名和密码。

<?php
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );//this is when we are in the root
define( 'DS', DIRECTORY_SEPARATOR);

//引入Joomla框架,以便使用joomla的类库
require_once (JPATH_BASE.DS.'includes'.DS.'defines.php');
require_once (JPATH_BASE.DS.'includes'.DS.'framework.php');

$mainframe =&JFactory::getApplication('site');
$mainframe->initialise();

$user = &JFactory::getUser();
if(!$user->get("username")){
?>
你还未登录!
<?php
}
else{
	
	echo $user->get("password")."<br>";
		//echo JUserHelper::getCryptedPassword("admin");
		//echo md5("admin");
		//使用Joomla的类库来查询
		$db= JFactory::getDbo();
		$query	= $db->getQuery(true);
		$query->select('id, password');
		$query->from('#__users');
		$query->where('username='.$db->Quote('admin'));
		$db->setQuery($query);
		$result = $db->loadObject();
		$parts	= explode(':', $result->password);
		$testcrypt = md5("admin".$parts[1]);
		echo $testcrypt;
		?>
		<?php 	
}
?>

ab9989726cacc2a382866650fe6c809d:64tjXqkuMhKth3GK9o6uBMilMTJhKJIe
ab9989726cacc2a382866650fe6c809d




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值