Забыли пароль администратора в joomla?

В нашей голове постоянно держится куча паролей, начиная с пин-кодов банковских карт, паролей для входа в рабочую сеть, паролей к почтовым ящикам и кончая администраторскими паролями к админкам и профилям сайтов и форумов. Конечно по-хорошему нужно бы их записывать, желательно на бумагу, но иногда этой самой бумаги нет под рукой, иногда мы не успеваем записывать админ пароли к  новым проектам. В общем ситуация когда пароль забыт - не такая уж и редкость. Итак, представим себе ситуацию - забыт пароль администратора к сайту на joomla.

Спешу Вас обрадовать - ситуация совершенно не смертельная. Здесь есть одно "но" - пароль можно заменить, но вот "напомнить" его - задача не тривиальная, все зависит от его длины. Если пароль был задан достаточно надежный - для вскрытия может понадобиться очень много времени. Дело в том что сам пароль нигде не хранится, сохраняется его хеш (MD5). А процедура эта работает только в одну сторону. Когда вы вводите пароль администратора и нажимаете "войти" - сравнивается MD5 для введенного Вами пароля и MD5 из базы данных. Поэтому подбор пароля возможен только перебором, а процедура это длительная.

Ну да хватит о грустном - у нас ситуация когда забыт собственный пароль администратора в joomla и скрывать следы своего присутствия не от кого. Для исправления положения нам будет нужен такой инструмент как phpMyAdmin - он как правило установлен провайдером на Вашем хостинге. В случае с домашним веб-сервером phpMyAdmin входит в состав Denwer, ну и в целом он бесплатен - его можно просто скачать и использовать. Выглядит в работе он так:

Пароль администратора в joomla

Итак, будем считать что phpMyAdmin готов к работе. Для подключения к базе данных нам понадобится логин и пароль для доступа к БД - если они тоже забыты, то найти их можно в файле configuration.php. В нём нам нужны переменные var $db - имя базы данных, var $user - имя пользователя и var $password - пароль.

Итак, запустили phpMyAdmin. Ищем таблицу jos_users, префикс может быть иным, здесь указан используемый по-умолчанию "jos", сути дела это не меняет. Находим в ней запись с полем name=Administrator. Это и есть учетная запись администратора. Как уже упоминалось - пароль мы будем именно менять, так как восстанавливать старый-дело неблагодарное. Пароль администратора в joomla хранится, как это ни банально в поле "password". Есть правда одна тонкость, о ней я сейчас и поведаю.
Пароль администратора, хранимый в бд joomla имеет такой вид: "e1680970633c93f2e9809032d43d6f93:TpsA5ctHJLlOwJNBlhCV85lMAU41SveQ". Т.е. пароль состоит из двух частей. Левая часть, перед двоеточием, или "crypt", как она именуется в исходниках и правая, "salt". В процессе Вашей авторизации пароль проверяется по следующей формуле: crypt=md5(Пароль из формы+salt). Таким образом если пароль забыт - необходимо получить новую левую часть, "crypt". Правую часть можно оставить ту же, что есть.
Итак, открываем запись на редактирование, копируем содержимое поля "password", сохраняем строчку в блокнот или любой текстовый редактор. Выбираем для поля "Function" значение "MD5", а в поле "Value" пишем "новый пароль+Правую часть записи из поля password", сохраняем запись.

Пароль администратора в joomla

Снова открываем запись на редактирование - значение поля "password" - и есть искомое новое значение левой части записи, "crypt". Теперь осталось совместить новую левую и старую правую части пароля, разделив их двоеточием. Сохраняем значение поля, уже не используя никаких функций.

Вот собственно и все, пароль администратора joomla заменен - можно работать дальше. Если что-то осталось непонятным - пишите комментарии, постараюсь ответить как можно быстрее.