Недавно столкнулся с проблемой непосредственной записи пароля в базу данных MySQL в системе управления контентом CMS Joomla! Поэтому, как часто бывает, пришлось "склеивать" рецепты из разных источников, чтобы придти к нужному результату.
Если говорить о принципе шифрования пароля пользователя, то сам пароль, который пишется в базу данных, состоит из двух частей:
- собственно, самого пароля, записанного в виде MD5 хеша;
- и MD5 хеша секретного кода, который генерирует Joomla! при установке программы сайта, и который, в свою очередь, записан в файле конфигурации configuration.php в параметре secret.
Другими словами, чтобы напрямую записать пароль в базу данных CMS Joomla!, нужно получить/создать два MD5 хеша пароля и секретного кода из файла configuration.php, и записать их через двоеточие в базу данных. Например:
433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT
…равнозначно паролю admin c соответствующим секретным кодом.
Далее, при первом обращении к этой ячейке, пароль будет программой CMS Joomla! перепрограммирован, и записан уже в том виде, который нужен самой CMS.
Если же вам нужно внутри программы получить и записать в базу данных пароль пользователя, это можно сделать при помощи следующего кода:
$app = JFactory::getApplication();
$salt = $app->getCfg('secret');
jimport('joomla.user.helper');
$crypt = JUserHelper::getCryptedPassword($userPassStr, $salt);
$newUserPassStr = $crypt.':'.$salt;
где $userPassStr, собственно, пароль пользователя.
Если вы уже зарегистрированы на этом сайте, или уже оставляли здесь свои комментарии, отзывы, заявки на участие в акциях, чтобы добавить ещё один комментарий – авторизуйтесь
Добавить комментарий