php之如何从密码中获取盐并用它来验证用户

powertoolsteam 阅读:22 2024-09-07 23:24:14 评论:0

<分区>

我已经阅读了大量关于加密密码的问题和教程,虽然我学到了很多,但我没有找到答案。

我想使用 crypt() 来散列我将存储在数据库中的密码。我也知道我需要使用盐才能正常工作,而且我读到生成随机盐的最佳方法是使用 this或类似的东西。

如果我没理解错的话,流程是这样的:

  1. 用户输入密码
  2. 随机生成盐
  3. 散列密码和盐
  4. 将结果存入数据库

但是当用户尝试登录时我该如何恢复盐分呢?

  1. 用户输入密码
  2. 我以某种方式添加了他自己独特的随机生成的盐
  3. 将它们哈希在一起
  4. 将其与存储在数据库中的散列加盐密码进行比较。

在我发现的几个问题中,答案之一是将随机生成的盐存储在数据库中。但我认为加盐的全部目的是为了更安全,如果攻击者可以访问我的数据库,他会看到“加盐”字段,即使我的密码已加密,他也可以轻松访问帐户。

其他答案说,在使用 crypt() 时,“salt”会添加到密码前面,因此无需将其存储在单独的字段中。我的问题是,如何访问它?是否有一些功能可以做到这一点,而我却完全不知所措?


标签:PHP
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号