php之如何从密码中获取盐并用它来验证用户
powertoolsteam
阅读:22
2024-09-07 23:24:14
评论:0
<分区> 分区>
我已经阅读了大量关于加密密码的问题和教程,虽然我学到了很多,但我没有找到答案。
我想使用 crypt() 来散列我将存储在数据库中的密码。我也知道我需要使用盐才能正常工作,而且我读到生成随机盐的最佳方法是使用 this或类似的东西。
如果我没理解错的话,流程是这样的:
- 用户输入密码
- 随机生成盐
- 散列密码和盐
- 将结果存入数据库
但是当用户尝试登录时我该如何恢复盐分呢?
- 用户输入密码
- 我以某种方式添加了他自己独特的随机生成的盐
- 将它们哈希在一起
- 将其与存储在数据库中的散列加盐密码进行比较。
在我发现的几个问题中,答案之一是将随机生成的盐存储在数据库中。但我认为加盐的全部目的是为了更安全,如果攻击者可以访问我的数据库,他会看到“加盐”字段,即使我的密码已加密,他也可以轻松访问帐户。
其他答案说,在使用 crypt() 时,“salt”会添加到密码前面,因此无需将其存储在单独的字段中。我的问题是,如何访问它?是否有一些功能可以做到这一点,而我却完全不知所措?
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。