[Tutorial] Как восстановить забытый пароль в админпанели?
Во-первых,
никак...
Дело в том, что ваш пароль система MODx хранит в базе данных в зашифрованном виде по специальному алгоритму шифрования MD5. Не вдаваясь особо в подробности, это достаточно устойчивый и мощный алгоритм, расшифровать который на сегодняшний день представляется нереальным, поэтому даже если данные из вашей базы данных попадут к злоумышленнику, то пароли администратора, редакторов и пользователей системы (если такие имеются) он получить не сможет.
Во-вторых,
выход всегда есть .
Поскольку уже известно что забытый пароль к MODx нам никто не напомнит, мы будем его менять на новый. Заодно здесь будет описана простейшая система авторизации на сайтах с использованием шифрования паролей. Полезно знать в принципе
.
Чтобы продолжить, вам потребуется доступ к phpMyAdmin на хостинге, если его нет - спросите у Вашего хостинг-провайдера.
Предупреждение: прежде всего сделайте копию Вашей базы данных, особенно той таблицы, с которой Вам нужно будет работать.
- Откройте phpMyAdmin
- Выберите свою базу данных из выпадающего списка, к примеру - modx
- Теперь Вы должны увидеть список таблиц в левом меню phpMyAdmin
- Найдите таблицу с названием "table_prefix_manager_users", где table_prefix_ - префикс таблиц, который Вы могли изменить при установке MODx на свой (например modx_manager_users), и нажмите на название данной таблицы
- В правом окне сверху нажмите "Обзор" или "Browse"
- Найдите логин своего пользователя из появившегося списка ниже и нажмите рядом на рисунке карандаша "Редактировать" или "Edit"
- Среди появившихся полей найдите поле с названием "password", данное поле содержит набор числовых и буквенных символов; это как раз и является вашим зашифрованным забытым паролем
Далее нам потребуется заменить текущий неизвестный пароль на какой-либо свой новый сложный пароль, например, password.
Однако просто заменив с помощью phpMyAdmin содержание поля password на свой пароль (например, password) и сохранив эти данные, мы не получим искомый результат. Чтобы понять, почему так происходит, необходимо чуть углубиться в описание системы авторизации:
При регистрации нового пользователя, например, при установке системы, мы вводим желаемый логин и пароль к системе управления. MODx их запоминает и пароль сохраняет в зашифрованном виде. Когда мы вводим свой логин и пароль, система получает эти данные и пытается найти такой же логин пользователя в базе данных. Если он не найден, понятно, что система вас посылает.. попробовать другой логин
. Ну а если совпадение находится, то дальше система берет введеный пароль и преобразует его с помощью уже известного алгоритма шифрования MD5 (попутно отмечу, что алгоритмы бывают разные, просто в MODx используется именно этот).
В результате такого преобразования получается строка с набором цифр и букв, который полностью отличается от введенного пароля. Далее система сравнивает полученную строку с зашифрованным паролем из базы данных, соответствующим введенному логину. Если две строки совпадают, - добро пожаловать в админпанель! А если нет.. ну на нет, и суда нет.
Не пустит тогда система в панель управления, короче говоря. А также запишет количество повторных неудачных вводов пароля и, если их станет больше трех, временно заблокирует данный логин.
Итак, нам нужно знать не только новый пароль, но и его шифр. Проще простого! Скачиваем приложенный файл, распаковываем архив, берем файл pass.php и запускаем его на хостинге. В результате видим следующее:
Your password: password
Encoded password: 5f4dcc3b5aa765d61d8327deb882cf99
Строка Encoded password - вот во что превратится пароль password при шифровании алгоритмом MD5.
- Итак, вернемся к phpMyAdmin. У нас теперь имеется пароль password и его шифр 5f4dcc3b5aa765d61d8327deb882cf99
- Скопируйте шифр пароля и вставьте его в поле password в phpMyAdmin
- Сохраните новое значение в базе данных, нажав кнопку "Пошел" или "Go"
- Выйдите из phpMyAdmin и попробуйте войти с новым паролем в менеджер MODx
Данное руководство является необходимым дополнением к руководству
Как разблокировать пользователей MODx?.