我看到了一些关于这个主题的其他讨论,但似乎找不到一些关于在密码加密中使用随机盐的问题的答案。据我了解,步骤大致如下:
- 为用户生成一个随机盐。
- 将盐附加到他们的密码上。
- 使用类似SHA-2的方法对结果进行哈希处理。
- 将盐和哈希密码都存储在数据库中。
当检索用户密码并验证登录时,这种方法是如何工作的?有一个回复说应该检索用户的盐,将其附加到他们输入的密码上,然后进行哈希处理,最后与存储的哈希值进行比较,但这不会引起一些问题吗?具体来说:
- 您如何检索盐而不危及该用户?如果有人想要暴力破解某个帐户的密码,他们是否能够检索从服务器返回以对输入的密码进行哈希处理的盐,从而消除添加盐所提供的安全性?
- 如果我们通过在服务器端执行盐检索来避免前面的问题,那么我们不会在某个时候发送未加密的用户输入密码(以便稍后附加到检索到的盐上)吗?