Хранение пароля в 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);

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

Другие вопросы по тегам