Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Хеширование паролей

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
freelsd
Отправлено: 19 Декабря, 2015 - 12:19:07
Post Id


Гость


Покинул форум
Сообщений всего: 108
Дата рег-ции: Февр. 2015  


Помог: 1 раз(а)




В общем-то вопрос - чем? Есть функция password_hash(), которая генерирует хеш по одному из алгоритмов. Какой алгоритм лучше использовать? И содержит ли в себе выходной хеш все данные, которые понадобятся потом для использования в проверяющей функции? Раньше все было просто - юзался md5, но сейчас он имеет статус небезопасного, как я понимаю?
 
 Top
Мелкий Супермодератор
Отправлено: 19 Декабря, 2015 - 12:30:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




md5 всегда был небезопасен для хэширования паролей. md5 создан, чтобы вычисляться быстро. А для хэширования пароля нужна обратная характеристика - он должен считаться долго.

freelsd пишет:
Какой алгоритм лучше использовать?

А что, есть много вариантов? http://php.net/manual/en/password.constants.php
BCRYPT и default, т.е. тот же самый bcrypt.
Используйте default, плюс сразу добавьте обработку password_needs_rehash. Когда добавится другой алгоритм и дефолт поменяется - вам не придётся модифицировать приложение.
Можно cost покрутить, но лучше не надо, если точно не знаете, что это даст.

freelsd пишет:
И содержит ли в себе выходной хеш все данные, которые понадобятся потом для использования в проверяющей функции?

Да, содержит. И используемый алгоритм, и хэш пароля и используемую соль. В общем - всё. Потому поле в базе рекомендуется делать в 255 символов.


-----
PostgreSQL DBA
 
 Top
freelsd
Отправлено: 19 Декабря, 2015 - 12:51:28
Post Id


Гость


Покинул форум
Сообщений всего: 108
Дата рег-ции: Февр. 2015  


Помог: 1 раз(а)




Мелкий пишет:
md5 всегда был небезопасен для хэширования паролей. md5 создан, чтобы вычисляться быстро. А для хэширования пароля нужна обратная характеристика - он должен считаться долго.

freelsd пишет:
Какой алгоритм лучше использовать?

А что, есть много вариантов? http://php.net/manual/en/password.constants.php
BCRYPT и default, т.е. тот же самый bcrypt.
Используйте default, плюс сразу добавьте обработку password_needs_rehash. Когда добавится другой алгоритм и дефолт поменяется - вам не придётся модифицировать приложение.
Можно cost покрутить, но лучше не надо, если точно не знаете, что это даст.

freelsd пишет:
И содержит ли в себе выходной хеш все данные, которые понадобятся потом для использования в проверяющей функции?

Да, содержит. И используемый алгоритм, и хэш пароля и используемую соль. В общем - всё. Потому поле в базе рекомендуется делать в 255 символов.


Благодарю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB