Хранение пароля в 2017 году
Так что я работаю на своем собственном сайте с моей системой входа в систему. Я работаю над паролем для хранения паролей и смотрю пару видео на YouTube, где люди говорят мне не использовать такие вещи, как md5, потому что он устарел.
Я посмотрел видео, сделанное Томом Скоттом о том, как НЕ хранить пароли, и он посоветовал нам посмотреть недавнее руководство о том, как это сделать правильно.
Для моего проекта мне действительно нужно хранить пароли самостоятельно, а не использовать что-либо вроде Facebook или Google для входа в систему.
Я посмотрел на многих веб-сайтах и вопросах здесь о переполнении стека, но не могу найти ничего из этого года, где все это объясняется.
Так что теперь мне интересно, как лучше всего в 2017 году хранить пароли? Нужно ли использовать соль и перец? Может быть, что-то еще? И какой алгоритм хеширования является лучшим в данный момент? Если возможно, я хотел бы использовать это в php.
Может кто-нибудь помочь мне с этими вопросами?
Спасибо:)
1 ответ
Я предполагаю, что вы просто хотите хранить пароли для аутентификации пользователя, и вы явно попросили PHP-решение, поэтому ответ должен заключаться в использовании PHP-функции password_hash(). Эта функция актуальна и обрабатывает все сложные части хеширования паролей.
// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = password_hash($password, PASSWORD_DEFAULT);
// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = password_verify($password, $existingHashFromDb);
Если вы заинтересованы в более достоверной информации, вы можете взглянуть на мое руководство по безопасному хранению паролей.