Joomla 3.2.1密码加密

当用户在站点上注册时,我在密码表中的数据库joomla_users中查找,密码以以下格式存储:

  • $ P $ Do8QrURFT1r0NlWf0X / grdF / aMqwqK /

  • $ P $ DH38Lch9z508gJiop3A6u0whTity390

  • ........

但不采用文档中描述的形式(MD5 +“:” + SALT):

  • 1802ebc64051d5b4f4d1b408babb5020:0PHJDbnsyX05YpKbAuLYnw2VCzFMW2VK

我需要为我澄清这一点,因为我正在使用外部脚本检查用户凭据以检查密码是否匹配。

在我的PHP脚本中,我有将SALT与数据库密码分开的代码:

$parts   = explode( ':', $password_database );

$crypt = $parts[0];

$salt = $parts[1];

但是,如果没有结,我就不能这样做(:)

回答:

尝试这个,

以下代码创建了Joomla标准密码 。

 jimport('joomla.user.helper');

$salt = JUserHelper::genRandomPassword(32);

$crypt = JUserHelper::getCryptedPassword($password_choose, $salt);

$password = $crypt.':'.$salt;

引入了PHP的密码算法 但它要求最低PHP 如果您打算使用

确保您的服务器PHP版本能够做到这一点,请在此处阅读更多内容。

其他版本的Joomla使用以下方法( )

 jimport('joomla.user.helper');

$yourpass = JUserHelper::hashPassword($password_choose);

另外,如果您使用的是外部脚本,则应包括如下所示的Joomla框架。这应该在您的外部php文件的顶部

define( '_JEXEC', 1 );

define('JPATH_BASE', dirname(__FILE__) );//this is when we are in the root

define( 'DS', DIRECTORY_SEPARATOR );

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );

require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

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

$mainframe->initialise();

您还提到了必须检查用户凭据,然后无需检查密码格式,并且在框架加载后,所有内容都只使用以下代码。

   $credentials['username'] = $data['username']; //user entered name

$credentials['password'] = $data['password']; //users entered password

$app = JFactory::getApplication();

$error = $app->login($credentials, $options);

if (!JError::isError($error)) {

// login success

}

else{

//Failed attempt

}

希望能帮助到你..

以上是 Joomla 3.2.1密码加密 的全部内容, 来源链接: utcz.com/qa/398023.html

回到顶部