2251  1

#joomla[faq] :: как корректно зашифровать пароль для непосредственной записи в базу данных

…а также восстановить пароль, например для администратора сайта.

#joomla[faq] :: как корректно зашифровать пароль для непосредственной записи в базу данных

Недавно столкнулся с проблемой непосредственной записи пароля в базу данных 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, собственно, пароль пользователя.

Если вам понравилась эта статья – комментируйте, делитесь в социальных сетях (кнопки «Поделиться» слева страницы).

Удачи, Мира и Добра!

Если вы уже зарегистрированы на этом сайте, или уже оставляли здесь свои комментарии, отзывы, заявки на участие в акциях, чтобы добавить ещё один комментарий – авторизуйтесь

Добавить комментарий

Комментарии


«ArtInWeb.biz»
  • #24

UA :: У коментарях ви можете щось додати або уточнити, у т.ч. поділитися вашим кодом.


RU :: В комментариях вы можете что-то добавить или уточнить, в т.ч. поделиться вашим кодом.


EN :: In comments you can add or clarify something, including share your code.


© «ArtInWeb.biz» – веб-разработка полного цикла

Последний раз редактировалось: 03/04/2020