За последние 24 часа нас посетил 38441 программист и 1284 робота. Сейчас ищут 1032 программиста ...

hash

Тема в разделе "PHP для новичков", создана пользователем Greg1978, 9 янв 2011.

  1. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Доброго вечера форумчане !
    Есть регистрация и в БД при регистрации попадает хешированный пароль и соль.
    PHP:
    1.  
    2. <?php
    3.      private function hashPassword($passwd)
    4.     {
    5.         if (!$passwd)
    6.             new Exception('Not passwd' . $passwd);
    7.         $salt = strval($this->randGenerator(3));
    8.         return array(md5($passwd . $salt), $salt);
    9.     }
    10. ?>
    11.  
    При авторизации выбирается соль из БД и соединяется с паролем и хешируется
    PHP:
    1.  
    2. <?php
    3.     public function hashPassword($password, $salt)
    4.     {
    5.         return md5($password . $salt);
    6.     }
    7. ?>
    8.  
    Так вот при сравнении хешей из БД пароля и сравниваемого при авторизации выходит что они совершенно различны.
    Не могу понять, все данные абсолютно, что пароль при регистрации и авторизации что соль применяемая и при регистрации и в БД.
    Спасибо!
    P.S.
    Есть мысли что они могут быть разных типов, но вроде бы приводил всё к строковым типам - всё равно выходило что они различны.
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    попробуй вручную прохешировать, чтобы понять ГДЕ генерируется неправильно - при занесении в базу или при сравнении занесённого пароля
     
  3. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Да, спасибо, генератор соли барахлил.
     
  4. wcb-falcon

    wcb-falcon Активный пользователь

    С нами с:
    24 мар 2010
    Сообщения:
    30
    Симпатии:
    0
    В продолжении данной темы.
    Как можно обработать обратно хешированный пароль на md5
    Так как создаю модуль редактирования пользователя и хочу вывести его пароль в том виде котором он его должен набирать.
    или то что схешировал md5 уже обратной конвертации не подлежит ?
     
  5. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    да
    единственный вариант хранить в базе в открытом виде
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    wcb-falcon
    обычно выводят пустое поле вместо пароля.
    если пользователь туда что-то вводит, то пароль обновляется.
    если не вводит - то остаётся прежним