Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кодирование пароля 
V
    Опции темы
Zzet
Дата 10.7.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



Здравствуйте! может подскажите как закодировать пароль в административной части сайта? smile  smile 
PM MAIL   Вверх
underW
Дата 10.7.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 22.9.2008

Репутация: 1
Всего: 3



md5
PM MAIL   Вверх
MoLeX
Дата 10.7.2009, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



underW, с помощью md5() мы не закодируем, а зашифрует пароль. 
 
Zzet, если тебе точно надо закодировать то к твоим услугам base64_encode()

Добавлено через 38 секунд
P.S. предпочтительней хэшировать


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Zzet
Дата 10.7.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



а какая разница между шифрованием и кодированием? я использую пароль для входа в административную часть, что использовать?
PM MAIL   Вверх
underW
Дата 10.7.2009, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 22.9.2008

Репутация: 1
Всего: 3



я вот недавно читал в книге "PHP5 и MySQL. Библия пользователя" Глава44. Аутентификация пользователей... так там md5.
PM MAIL   Вверх
MoLeX
Дата 10.7.2009, 13:51 (ссылка) |   (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Zzet @  10.7.2009,  13:26 Найти цитируемый пост)
а какая разница между шифрованием и кодированием? 

1. ф-ция md5()  - ты получишь хэш который тебе не расшифровать, можно только подобрать
2. ф-ция base64_encode() - получишь закодированную строку которая декодируется с помощью base64_decode()

Теперь смотрим ситуацию: в результате твоей ошибки в скрипте есть sql-уязвимость. Плохой человек находит её и получает пару логин:пароль. В дальнейшем события развиваются двумя способами
1. при использование md5() он начинает судорожно подбирать пароль
    Вполне вероятно, что в базе хэшей присутствует такой же хэш - значит этот плохой человек получит исходный пароль. 
    Чтобы этого не случилось надо при хэширование добавить соль - тут же перевод строки - md5("\n".$pass)
2. при использование base64_encode() он воспользуется base64_decode() и получит твой пасс и соотвественно доступ в админпанель

Добавлено через 3 минуты и 20 секунд
P.S. 
http://insidepro.com/hashes.php


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 10.7.2009, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Перед тем, как задавать вопрос "как", сначала надо ответить на вопрос "зачем".
Зачем кодировать пароль административной части? 
PM MAIL   Вверх
Zzet
Дата 10.7.2009, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



Цитата

Перед тем, как задавать вопрос "как", сначала надо ответить на вопрос "зачем".
Зачем кодировать пароль административной части?  

я выкладываю сайт на хостинге. в пользовательской части есть информация заказчика. в административной оператор со стороны заказчика вносит изменения, для того, чтобы войти в адм часть оператору, а не бухгалтеру, к примеру, нужен пароль. или я что-то не так понимаю. тогда подскажите, пожалуйста как это пооперационно должно работать
PM MAIL   Вверх
Ипатьев
Дата 10.7.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Записываешь пароль в базу данных или в файл.

PM MAIL   Вверх
Zzet
  Дата 10.7.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



не могу понять механизм.разбираю пример с паролем. записан пароль в файл connect.inc.php
Код

<?php
    define('ADMIN_LOGIN', 'YWRtaW4='); //administrator's login
    define('ADMIN_PASS', '7215ee9c7d9dc229d2921a40e899ec5f'); //administrator's login
?>


как сформирован этот пароль. не могу догнать.
операции выполняются в коде
Код


<? 
   // session_start();
    include("connect.inc.php");

    if (isset($_POST["authorize"]))
    {
        if (!strcmp(base64_encode($_POST["login"]), ADMIN_LOGIN) && !strcmp(md5($_POST["password"]), ADMIN_PASS))
        { //login ok
            $_SESSION["log"] = ADMIN_LOGIN;
            $_SESSION["pass"] = ADMIN_PASS;
            //redirect to the admin interface
            header("Location: index2.php");
        }
        else $errorStr = "Invalid login and/or password";
    }
?>
<html>
<head>
<link rel=STYLESHEET href="style.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=cp1251">
<title>Administrator login</title></head>
<body>
<center>
<?php
    if (isset($errorStr)) echo "<font color=red><b>$errorStr</b></font>";
?>
<form name="form1" method="post" action="access_admin.php">
    <table border="0" cellpadding="2" cellspacing="1" bgcolor="#333333">
      <tr bgcolor="#CCCCCC"> 
        <td colspan="2" align=center><h4>Administrator login</h4></td>
  </tr>
      <tr bgcolor="#FFFFFF"> 
        <td align="right">Login:</td>
        <td> 
          <input type="text" name="login"<?php if (isset($_POST["login"])) echo ' value="'.str_replace("\"","&quot;",stripslashes($_POST["login"])).'"';?>></td>
  </tr>
      <tr bgcolor="#FFFFFF"> 
        <td align="right">Password:</td>
        <td> 
          <input type="password" name="password"></td>
  </tr>
</table>
    <p>
      <input type="hidden" name="authorize" value="1">
      <input type="submit" value="Login">
    </p>
  </form>
  <p><a href="index.php">Start page...</a></p>
</center>
</body>
</html>


как сформирован этот пароль. не могу догнать?
PM MAIL   Вверх
Ипатьев
Дата 10.7.2009, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(Zzet @  10.7.2009,  16:03 Найти цитируемый пост)
strcmp(md5($_POST["password"])


PM MAIL   Вверх
Zzet
  Дата 10.7.2009, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет




Код

<?php
    define('ADMIN_LOGIN', 'YWRtaW4='); //administrator's login
    define('ADMIN_PASS', '7215ee9c7d9dc229d2921a40e899ec5f'); //administrator's login
?>

что я ввожу в форме. как его задать , чтобы код сравнивал с ('ADMIN_LOGIN', 'YWRtaW4='), ('ADMIN_PASS', '7215ee9c7d9dc229d2921a40e899ec5f')?
PM MAIL   Вверх
Ипатьев
Дата 10.7.2009, 16:21 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



это знает только тот, кто писал код
PM MAIL   Вверх
Zzet
  Дата 10.7.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



запускаю код и выходит что можно зайти на страницу и без пароля

Добавлено через 1 минуту и 27 секунд
как задать свой логин и пароль
PM MAIL   Вверх
lelik133
Дата 10.7.2009, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



при запросе страницы выдавать форму запроса логина/пароля, потом сравнивать их с правильными, определенными define`ами как у вас или хранящимися в базе
PM ICQ   Вверх
Zzet
  Дата 10.7.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



хорошо. генерирую свой логин и паролью.
допустим логин zvezda пароль 111.
кодирую логин хеширую пароль изменяю значения в файле connect.inc.php соответствующие логину и паролю
по нажатию кнопки в форме ввожу свой логин и пароль. получаю ошибку логина/пароля. 
в чем дело. что делаю не так?

PM MAIL   Вверх
Ипатьев
Дата 10.7.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(Zzet @  10.7.2009,  17:31 Найти цитируемый пост)
что делаю не так?

- кодирую логин
- хеширую пароль 
- изменяю значения в файле connect.inc.php 
- по нажатию кнопки в форме ввожу свой логин и пароль. 

любое из вышеперечисленных действий.
плюс ошибки могут быть в коде и на сервере. 

Скажи, ты в состоянии написать код, который просто проверяет логин и пироль безо всякого хэширования и кодирования?
PM MAIL   Вверх
Zzet
  Дата 10.7.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



да
Код

include("connec1t.inc.php");

    if (isset($_POST["authorize"]))
    {
        if (!strcmp($_POST["login"], ADMIN_LOGIN) && !strcmp($_POST["password"], ADMIN_PASS))
        { //login ok
            $_SESSION["log"] = ADMIN_LOGIN;
            $_SESSION["pass"] = ADMIN_PASS;
            //redirect to the admin interface
            echo "xxxxxxxxx";
           // header("Location: index2.php");
        }
        else $errorStr = "Неверный логин и/или пароль";
    }

в connec1t.inc.php
Код

<?php
    define('ADMIN_LOGIN', 'zvezda');
    define('ADMIN_PASS', '111');//administrator's login   
?>

работает, только с проблемы с header header("Location: index2.php");
говорит Cannot modify header information - headers already sent by 
но сейчас архиважно кодир и хешир

Добавлено через 1 минуту и 27 секунд
да
Код

include("connec1t.inc.php");

    if (isset($_POST["authorize"]))
    {
        if (!strcmp($_POST["login"], ADMIN_LOGIN) && !strcmp($_POST["password"], ADMIN_PASS))
        { //login ok
            $_SESSION["log"] = ADMIN_LOGIN;
            $_SESSION["pass"] = ADMIN_PASS;
            //redirect to the admin interface
            echo "xxxxxxxxx";
           // header("Location: index2.php");
        }
        else $errorStr = "Неверный логин и/или пароль";
    }

в connec1t.inc.php
Код

<?php
    define('ADMIN_LOGIN', 'zvezda');
    define('ADMIN_PASS', '111');//administrator's login   
?>

работает, только с проблемы с header header("Location: index2.php");
говорит Cannot modify header information - headers already sent by 
но сейчас архиважно кодир и хешир

Добавлено через 3 минуты и 6 секунд
 в коде connec1t.inc.php в комментарии не administrator's login, а administrator's pass

Добавлено через 5 минут и 24 секунды
 в коде connec1t.inc.php в комментарии не administrator's login, а administrator's pass
PM MAIL   Вверх
patap
Дата 10.7.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



на счет header:
перед хидером не должно быть ни какого вывода в браузер


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
Zzet
  Дата 10.7.2009, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



patap , без вывода в браузер тоже не работает. если  имелось ввиду только
Код

echo "xxxxxxxx";

выдает ту же ошибку
PM MAIL   Вверх
patap
Дата 10.7.2009, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



ну может там еще что-то есть... допусти в сам начале страницы перед <?php стоит перевод строки или пробел, или если файл сохранен в UTF-8, то возможно в начале файла дописана метка  BOM (3 байта вроде). она тоже считается выводом


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
Ипатьев
Дата 10.7.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



сделай echo md5(ADMIN_PASS);

Это сообщение отредактировал(а) Ипатьев - 10.7.2009, 18:24
PM MAIL   Вверх
Zzet
  Дата 10.7.2009, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



patap, спасибки, у меня как раз /n стоял.   smile 
что делать с кодированием, хешированием непонятно  smile

Добавлено через 10 минут и 56 секунд
получил 698d51a19d8a121ce581499d7b701668. подставил в файл. теперь работает. было также но не работало. вожможно причина была в md5("\n".ADMIN_PASS). спасибо, танцую от счастья smile 
PM MAIL   Вверх
ZTI831
Дата 11.7.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



я делаю так: 
$pass = "asdfghj23";
$result = md5 (md5 ("k4sngh235578i8o".$pass) );

Можно ли еще как нибдуь усложнить мой скрипт?
PM   Вверх
Ипатьев
Дата 11.7.2009, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



зачем?
PM MAIL   Вверх
ZTI831
Дата 11.7.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



Для усложнения подбора.
PM   Вверх
Ипатьев
Дата 11.7.2009, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



А сейчас он недостаточно сложен?
PM MAIL   Вверх
ZTI831
Дата 11.7.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



сложен, но я подумал можно еще как нибудь усложнить, вот вас и спросил
PM   Вверх
Ипатьев
Дата 11.7.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Глупо ставить железную дверь на сарай из картона. 
Я думаю, к тебе на сайт можно попасть с помощью десятков разнообразнейших уязвимостей. Не прибегая ни к какому паролю. И я рекомендую тебе заняться именно ими, а не увеличением времени подборя пароля с тысячи до миллиона лет.
PM MAIL   Вверх
Staind
Дата 12.7.2009, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 17.12.2007
Где: Планета сокровищ

Репутация: 2
Всего: 3



2ZTI831, хешировать хеш бесполезно.
Я делаю sha1(md5($string)) - хотя считаю это тоже излишеством.

Это сообщение отредактировал(а) Staind - 12.7.2009, 00:26
--------------------
Ничто так не раздражает человека, как просьба успокоиться
PM MAIL WWW ICQ   Вверх
Nirvana77
Дата 13.7.2009, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 12.7.2009

Репутация: 1
Всего: 1



Мужики живите спокойно  smile 

Код

    // функция шифровки ГОСТ 28147-89
    public function encode_gost($str, $kl) 
    {
        $vector = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_GOST, MCRYPT_MODE_ECB), MCRYPT_RAND);
        $this->keys = md5(mhash(MHASH_SHA256,$kl));
        $key = $this->keys;
        $encode = $str;
        $encrypt = mcrypt_encrypt(MCRYPT_GOST, $key, $encode, MCRYPT_MODE_ECB, $vector);
      return $encrypt;
    }

    // функция расшифровки ГОСТ 28147-89
    public function decode_gost($str, $kl) 
    {
        $vector = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_GOST, MCRYPT_MODE_ECB), MCRYPT_RAND);
        $this->keys = md5(mhash(MHASH_SHA256,$kl));
        $key = $this->keys;
        $decode = $str;
        $decrypt = mcrypt_decrypt(MCRYPT_GOST, $key, $decode, MCRYPT_MODE_ECB, $vector);
      return $decrypt;
    }

// $kl - это ключ для шифровки или расшифровки, а $str - шифруемый текст.

$keys = 'Россия - Родина моя';
$texts = 'Жил был у дедушки серенький козлик и этот козлик любил по утрам выпивать';
echo encode_gost($texts, $keys);


PM MAIL   Вверх
Ипатьев
Дата 13.7.2009, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Хороший пример комментария не в тему.
PM MAIL   Вверх
bazzjr
Дата 13.7.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



Читаю и медленно ахреневаю над тем как умы поворачиваются извратится над хэшированием пароля  smile 

Апсолютно согласен с Ипатьев, когда он говорил что кроме пароля существует еще тысяча других дыр  smile 

Так что не теряйте время на изобретение велосипеда в хэшированием пароля!
PM MAIL ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1426 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.