2015-12-26 4 views
2

Я новичок в хранилище паролей хешей. Может кто-то указать, что я могу делать неправильно. Я использую специально PHP, а не C или любое отклонение C.Хранение хэшей для пароля в PHP

Сохранение Hash:

  1. Получить пароль
  2. Отправить его password_hash() функции с помощью алгоритма, как sha-512, и фактор стоимости.
  3. Немного застрял здесь. Когда я повторяю, я использую хэш-код принятого пароля?
  4. Длина: pbkdf2 Функция отклонения ключа.
  5. Магазин в базе данных.

Получение Hash: попытка

  1. Получить пользователя по паролю.
  2. Застрял здесь, но я предполагаю, что вы используете функцию password_verify.
  3. Если матч подтверждает другой отказ.

Если кто-то может опубликовать правильное решение, которое было бы очень обязательным.

+0

Не могли бы вы высказать свой код. Тогда другие могли бы легко понять вашу проблему. –

+0

$ пароль = $ _POST ['пароль']; $ hash = password_hash (7, 12, пароль $); $ i = 0; while $ i <12800) {$ hash = password_hash (7, 12, $ хэш); } Не знаю, как реализовать функцию hash_pbkdf2. –

ответ

2

Зачем вам мешать while(), если вы можете просто использовать варианты сборки?

$password = $_POST['password']; 
$hash = password_hash($password,PASSWORD_DEFAULT, array('cost' => 12)); 
echo $hash; 

Это правильный способ сделать это. И для проверки пароля все, что вам нужно сделать, это следующее.

if(password_verify($password, $hash)){ 
    //valid password 
} 
+0

Я не вижу встроенный цикл в функции password_hash. Какой параметр? –

+0

Стоимость - экспоненциальный вариант. 2^11 - это значение по умолчанию, если я правильно помню, что сейчас больше, чем достаточно итераций. Которая занимает ~ 100 мс – Crecket

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

  • Нет связанных вопросов^_^