2016-02-03 2 views
0

Я использую этот хэш пароля: https://github.com/ircmaxell/password_compatКак проверить пароль Хэши

$hash = password_hash($pass1, PASSWORD_BCRYPT, array("cost" => 16)); 

if (password_verify($password, $hash)) { 
     /* Valid */ 
    } else { 
     /* Invalid */ 
    } 

Он работает. Он хешировал пароли. Но я не знаю, как проверить пароль на странице входа. Я пробовал с просмотра, но он тоже не работает с сеансами.

+0

Что такое '$ password' и' $ pass1'? –

+2

Извлеките хэшированный пароль из базы данных, используйте 'password_verify ($ submittedForm, $ fromDatabase)' для проверки. Это либо 'true', либо' false'. – Qirel

+0

шифрует пароль ввода и сравнивает его с db. –

ответ

0

Как я сделал это в прошлом, в следующих шагах:

1) Пользователь подает их комбинацию Имя пользователя/пароль.

2) Я вижу, существует ли в базе данных имя пользователя, если оно вытаскивает эту запись пользователя из базы данных, если она не представляет собой общую ошибку для пользователя (т. Е. Неправильную комбинацию имени пользователя и пароля)

3) Затем я использую функцию password_verify с предоставленным паролем против хешированного пароля, подключенного к пользователю, к которому они пытаются войти.

4) Если это правда, они вошли в противном случае я представляю ту же общую ошибку пользователя (неправильное имя пользователя/пароль) комбинацию

2

вы должны поставить хэша в базе данных

Шаг один : создавать и хранить хэш в базе данных

$hash = password_hash($pass1, PASSWORD_BCRYPT, array("cost" => 16)); 

Шаг два: логин

$hash = // hash of user from database by unique id 
$password = // string submit by user from login form 

if (password_verify($password, $hash)) { 
    if (password_needs_rehash($hash, PASSWORD_BCRYPT, array("cost" => 16))) { 
     $hash = password_hash($password, PASSWORD_BCRYPT, array("cost" => 16)); 
     /* Store new hash in db */ 
    } 
} else { 
    /* Invalid */ 
} 

Надеюсь, вам это поможет

+0

Я создал и сохранил хэш пароля при регистрации пользователя. –

0

В принципе, вы должны хэш-пароль, который пользователь вводит на страницу входа и проверяет, совпадает ли сохраненный хэш в базе данных с хэшированным паролем, который пользователь отправляет при входе в систему.

Смежные вопросы