2017-04-06 63 views
0

所以我正在使用我的登录系统在我自己的网站上工作。 我正在密码存储部分工作,并一直在寻找一些YouTube视频,人们告诉我不要使用像md5这样的东西,因为它已经过时了。2017年密码保存

我看了一下汤姆斯科特关于如何不存储密码的视频,他告诉我们查看最近的教程,了解如何正确地做到这一点。

对于我的项目,我真的需要自己储存密码,而不是使用任何类似Facebook或Google登录。

我看了很多网站和关于堆栈溢出的问题,但似乎无法找到今年所有解释的地方。

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

任何人都可以帮我解决这些问题吗?

谢谢:)

+1

[我建议你看看这个问题在crypto.stackexchange的答案](https://security.stackexchange.com/q/4781/76890) –

+0

我投票结束这个问题,因为这是一个安全问题,而不是编程问题。 – Dukeling

回答

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); 

如果您有兴趣了解更多信息indept,你可以看看我的tutorial有关安全存储密码。