Нещодавно зіткнувся з проблемою безпосереднього запису пароля в базу даних 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, власне, пароль користувача.
Якщо ви вже зареєстровані на цьому сайті, або вже залишали тут свої коментарі, відгуки, заявки на участь в акціях, щоб додати ще один коментар – авторизуйтесь
Додати коментар