您的位置:首页 > 其它

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

2012-11-30 14:51 706 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: