Организация авторизации с помощью bcrypt и password_hash

Тема в разделе "Как сделать...", создана пользователем Q_BASIC, 21 дек 2015.

Статус темы:
Закрыта.
  1. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    Приветствую,

    В связи с тем, что password_hash возвращает разные хеши одного пароля, по старой схеме авторизацию запилить нет возможности.

    1. Какой хеш хранить в бд?
    2. Какой хеш хранить в кукак?

    Можно хранить в бд и куках один хеш, но тогда смысл хеширования пропадает. Если сливают бд, то хеш из бд устанавливают в куки и всё.

    Если делать 2 хеша одного пароля, то как их потом сравнивать, при авторизации по кукам?

    Если хранить авторизацию в сессии - браузер закрыл - надо заново авторизовываться. Так не пойдет.

    При логине хоть более понятно, берем из бд запись с логином пользователя и сверяем отправленный пароль с хешем из бд. Если всё хорошо, то авторизовываем.
     
    Последнее редактирование: 21 дек 2015
  2. ykpon

    ykpon

    Регистр.:
    8 дек 2012
    Сообщения:
    248
    Симпатии:
    143
  3. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    Я знаю про эту функцию. Только сейчас подумал, я хочу сравнить 2 хеша, что в принципе невозможно. Для этого и разрабатывались эти алгоритмы, что бы хеши нельзя было сравнить
     
  4. ykpon

    ykpon

    Регистр.:
    8 дек 2012
    Сообщения:
    248
    Симпатии:
    143
    PHP:
    $hash password_hash('nulled',PASSWORD_DEFAULT);
    if (
    password_verify('nulled'$hash)) {
        echo 
    'true';
    } else {
        echo 
    'false';
    }
     
  5. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    Я сравнивают не пароль с хешем, а два хеша. Не надо мне password_verify показывать
     
  6. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    2ykpon
    В общем задача такая- хранение авторизации. Как я понимаю раньше человек просто хранил хеш пароля, а с бкриптом такое не подходит.
    Как вариант- храни md5 от бкрипта, при успешной авторизации) Сравнить то его просто)
    Ну а вообще , практикуют хранение авторизации в сессии, а сессия хранится к примеру в базе. Делаешь отдельное поле у юзера, при успешной авторизации оно заполняется каким нить случайным числом, которое хранится в куках.
     
  7. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    Это я уже понял. И свою ошибку уже давно понял. А вообще, закройте тему
     
Статус темы:
Закрыта.