实际加盐密码和稍后比较的过程

The process of practically salting a password and comparing later

以下是我可以在商业产品中使用的腌制和储存盐的可行方法吗?

  1. 关于用户 creation/register:我生成了一个随机的 Salt 字符串。
  2. 当执行下面的代码时,我知道他们的纯文本密码和用户名。
  3. 我将 Salt 存储在数据库中,用户名链接到一个单独的 table
  4. string hashedPwd = hash(pwd+salt)
  5. 我将带有用户详细信息的 hashedPwd 存储在正常 [users] table

我好奇的地方:

  1. 用户尝试登录 - 他们输入了用户名和密码 2。我只使用他们的用户名,然后在 Salt table 中查找它,如果我找到匹配项,我就会得到 Salt。 yes/no ?
  2. string UserTryingToLoginhashedPwd = hash(pwd+Salt)
  3. 然后我根据用户名获取正常的 [users] 详细信息,并将 db_pwd 与 UserTryingToLoginhashedPwd
  4. 进行比较
  5. if true正常登录

现在阅读我的问题,这听起来像是最合乎逻辑的行动过程,但可以放心使用。

是的,这通常是存储盐和密码并稍后验证用户的正确流程。