Утерян паролЬ, БД не хочет ставить новый

Тема в разделе "Общие вопросы оптимизации", создана пользователем Олегадзе, 5 май 2010.

Статус темы:
Закрыта.
  1. Олегадзе

    Олегадзе Гость На форуме с: Сообщения: 0

    Люди, беда такая - забыл пароль админа от панели управления сайтом. Движок joomla 1 15
    Доступ к базе есть, сгенерил в МД5, сохранил - не пускает. Запросом UPDATE jos_users SET password='72775e0eccbd8917ac349b35f2f55752:6ERdZzi N8OomBywiQy6a2oGLyi58QyQb' WHERE username='admin';
    забиваю в админку пароль - логин admin - посылает к черту. Попробовал скачать утилиту admrest, скопировал по фтп в корень сайта, ввел в браузер - посылает к черту. ПОдскажите, плиз, как мне этот долбаный пароль поменять? Не могу попасть в админку.
  2. Lubyanchenko

    Lubyanchenko На форуме с: 12 сен 2009 Сообщения: 557

    Попробуй так:

    Восстановление с помощью функции напоминания пароля

    Если вы помните e-mail суперадминистратора, можно зайти на сайт и воспользоваться функцией напоминания забытого пароля. Для этого нужно набрать в адресной строке браузера (вместо site.ru укажите адрес вашего сайта):
    http://site.ru/index.php?option=com_registration&task=lostPassword

    После этого ввести логин и e-mail учетной записи суперадминистратора, и нажать кнопку «Отправить пароль». Новый пароль будет выслан на адрес учетной записи суперадминистратора.

    Сброс пароля суперадминистратора с помощью SQL-запроса

    Если же по некоторым причинам нет возможности восстановления пароля посредством функции напоминания забытого пароля, можно сбросить пароль администратора с помощью SQL-запроса.

    Для этого необходимо подключиться к базе данных сайта и выполнить следующий SQL-запрос (например с помощью phpMyAdmin):
    Код:
    [COLOR=#993333][B]UPDATE[/B][/COLOR] [COLOR=#ff0000]`jos_users`[/COLOR]
       [COLOR=#993333][B]SET[/B][/COLOR] password=[COLOR=#ff0000]'21232f297a57a5a743894a0e4a801fc3'[/COLOR]
     [COLOR=#993333][B]WHERE[/B][/COLOR] id = [COLOR=#cc66cc]62[/COLOR];
    После выполнения данного SQL-запроса, пароль суперадминистратора будет admin. Не забудьте зайти в административную панель и изменить этот пароль в целях безопасности.
    Либо можно сразу в запросе указать новый пароль, тогда запрос будет выглядеть так:
    Код:
    [COLOR=#993333][B]UPDATE[/B][/COLOR] [COLOR=#ff0000]`jos_users`[/COLOR]
       [COLOR=#993333][B]SET[/B][/COLOR] password= MD5[COLOR=#66cc66]([/COLOR] [COLOR=#ff0000]'new_password'[/COLOR] [COLOR=#66cc66])[/COLOR]
     [COLOR=#993333][B]WHERE[/B][/COLOR] id = [COLOR=#cc66cc]62[/COLOR];
    где вместо new_password
    вы можете указать свой новый пароль.

    Вариант скриптом

    крипт на PHP для тех, кто часто забывает пароль администратора в панель администрирования CMS Joomla. Просто залейте его на сервер в директорию /administrator/ (например с именем pw.php) и откройте в браузере http://example.com/administrator/pw.php. Новый пароль придет на электронную почту администратора Joomla
    для Joomla 1.5.*
    PHP:
    <?
    $joomlaConfig '../configuration.php';
    if (!
    file_exists($joomlaConfig))
        die (
    "Error: file $joomlaConfig does not exist");
     
        include(
    "$joomlaConfig");
        
    $config = new JConfig;
        
    $db_link mysql_connect($config->host,$config->user,$config->password) or die (mysql_error());
        
    mysql_select_db($config->db) or die (mysql_error());
        
    $query "SELECT email FROM {$config->dbprefix}users WHERE id=62";
        
    $result mysql_query($query,$db_link);
        
    $row mysql_fetch_assoc($result);
     
        function 
    createPassword($length) {
            
    $chars "234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            
    $i 0;
            
    $password "";
            while (
    $i <= $length) {
                
    $password .= $chars{rand(0,strlen($chars))};
                
    $i++;
            }
            return 
    $password;
        }
    $pw   createPassword(8);
    $salt createPassword(32);
     
    $md5_pw md5($pw.$salt).':'.$salt;
    $updatepw_sql "UPDATE {$config->dbprefix}users SET password='$md5_pw' WHERE id='62'";
     
    mysql_query($updatepw_sql,$db_link) or die (mysql_error());
    echo 
    'new password has been sent to '$row['email'];
    mail($row['email'],"New password for $config->sitename","new password for admin: $pw");
     
    mysql_close($db_link);
    ?>
    для Joomla 1.0.*

    PHP:
    <?
    $joomlaConfig '../configuration.php';
    if (!
    file_exists($joomlaConfig))
            die (
    "Error: file $joomlaConfig does not exist");
     
    include(
    "$joomlaConfig");
     
    $db_link mysql_connect($mosConfig_host,$mosConfig_user,$mosConfig_password) or die (mysql_error());
    mysql_select_db($mosConfig_db) or die (mysql_error());
    $query "SELECT email FROM {$mosConfig_dbprefix}users WHERE id=62";
    $result mysql_query($query,$db_link);
    $row mysql_fetch_assoc($result);
     
    function 
    createPassword($length) {
            
    $chars "234567890abcdefghijkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            
    $i 0;
            
    $password "";
            while (
    $i <= $length) {
                    
    $password .= $chars{rand(0,strlen($chars))};
                    
    $i++;
            }
            return 
    $password;
    }
    $pw createPassword(8);
    $md5_pw md5($pw);
    $updatepw_sql "UPDATE {$mosConfig_dbprefix}users SET password='$md5_pw' WHERE id='62'";
     
    mysql_query($updatepw_sql,$db_link) or die (mysql_error());
    echo 
    'new password has been sent to '$row['email'];
    mail($row['email'],"New password for $mosConfig_live_site","new password for admin: $pw");
     
    mysql_close($db_link);
    ?>
  3. Олегадзе

    Олегадзе Гость На форуме с: Сообщения: 0

    Докладываю - перепробовал все. Видимо, дело не в базе данных. В общем, и скриптом менял - на мыло приходил новый пароль, вводил - пишет неправильная пара, и скрипт, который ты предложил, попробовал - не хочет. Наверное, ошибка более фундаментальная. Может, есть идеи?
  4. Messer

    Messer На форуме с: 9 апр 2010 Сообщения: 500

    Если не изменяет память, то там не просто дайджест, а еще симметрично зашифрованный.
    В configuration.php есть кодовое слово. При помощи него шифруется дайджест(и вобще всё шифруется) и записывается в бд.
    Но есть один касяк - в разных версиях применяются разные алгоритмы шифрования паролей.

    Вот решение с форума http://support.gorsk.net/forum/problemi-so-vhodom-v-adminku-JOOMLA-t1099.html
  5. esker

    esker На форуме с: 29 янв 2010 Сообщения: 26

    Олегадзе, Залезь в код и посмотри, как выполняется авторизация. Смысл гадать, при наличии открытого кода?
Статус темы:
Закрыта.