php - 如何散列和加盐密码

标签 php security encryption hash

我意识到这个话题有时会被提及,但我发现自己对这个话题还不是很确定。

我想知道如何对散列进行加盐并使用加盐的散列?如果密码是用随机生成的盐加密的,当用户尝试验证时我们如何验证它?我们是否也需要将生成的哈希存储在我们的数据库中?

是否有任何特定的盐生成方式?哪种加密方式更适合使用?据我所知,sha256 还不错。

当用户进行身份验证时,让散列“重新加盐”是个好主意吗?最后,重复多次是否对安全有重大提升?

谢谢!

最佳答案

答案是不要自己做。使用 bcrypt 即可完成您在 PHP 中所需的一切。

读这个,它很容易理解并解释了你所问的一切:http://codahale.com/how-to-safely-store-a-password/

bcrypt 本身会考虑散列,并且可以根据需要将其配置为“复杂”,以在遭到黑客攻击时保持用户密码的完整性。

哦,我们不“加密”密码,我们散列它们。

关于php - 如何散列和加盐密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4578431/

相关文章:

php - Laravel:对多个值进行多对多过滤

c# - 如何以编程方式调用 Windows 权限对话框?

git - 如何在云中创建安全的 git 存储库?

php - grep 命令输出中的特定字符串

php - 分页无法正常工作

.net - 从网络共享运行 "partially trusted".NET 程序集

java - 我应该如何在 Java 的应用程序层之间传递主题/主体/角色?

java - 如何在 hibernate.cfg.xml 中将 hibernate.connection.password 设置为加密值,然后将其解密以在配置中使用?

php - 如何加密/解密 PHP GET 参数?

javascript - php html 表单选择选项来填充文本字段 jquery