密码存储于2017年

时间:2017-04-06 10:12:36

标签: algorithm hash salt storing-information pepper

所以我使用我的登录系统在我自己的网站上工作。 我正在研究密码存储部分并且正在查看几个YouTube视频,其中人们告诉我不要使用像md5这样的东西,因为它已经过时了。

我查看了汤姆斯科特关于如何不存储密码的视频,他告诉我们要查看最近如何正确完成的教程。

对于我的项目,我真的需要自己存储密码,而不是使用Facebook或Google之类的东西进行登录。

我在Stack Overflow上查看了很多网站和问题,但似乎无法从今年找到任何可以解释的内容。

所以现在我想知道2017年存储密码的最佳方式是什么? 我需要使用盐和胡椒吗?也许别的什么?目前哪种哈希算法最好?如果可能的话,我想在php中使用它。

有人可以帮我解决这些问题吗?

谢谢:)

1 个答案:

答案 0 :(得分:2)

我假设您只想存储用户身份验证的密码,并且您明确要求提供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);

如果您对更多不确定信息感兴趣,可以查看我的tutorial关于安全存储密码的信息。