将密码盐分开存储与密码哈希?

10 浏览
0 Comments

将密码盐分开存储与密码哈希?

假设对于密码哈希使用了正确的算法,并为每个密码生成了不同的盐...

将盐与密码哈希分开存储,例如在数据库表中,将密码哈希存储在一列中,将密码盐存储在另一列中,是否存在安全风险?

我看到一些策略是通过使用特定算法将盐嵌入到密码哈希本身中,稍后可以从密码哈希中提取盐。这样做是否更安全?

0
0 Comments

问题的出现原因:

将密码散列和密码盐分开存储的原因是为了增加密码的安全性。通过将密码盐存储在单独的列中,可以防止攻击者利用已知的密码散列来破解密码,同时还可以提供更高的安全性。

解决方法:

将密码盐和密码散列分开存储是一种常见的做法,可以通过以下步骤来实现基本的身份验证:

  1. 使用用户提供的用户名或电子邮件检索用户ID和密码盐
  2. 将用户提供的密码输入与检索到的盐连接起来
  3. 对组合字符串使用散列算法
  4. 将生成的散列与数据库中的散列进行比较

这种方法可以确保密码不会以明文形式存储在数据库中,并且每个用户的密码都有一个唯一的盐值。这样,即使攻击者获得了数据库的访问权限,他们也无法直接获取用户的密码,因为他们没有相应的盐值。同时,由于每个用户的盐值都是唯一的,即使两个用户的密码相同,它们的散列值也会不同,增加了破解密码的难度。

通过将密码盐和密码散列分开存储,可以提高密码的安全性,并降低密码被破解的风险。这种做法已被广泛接受并被视为一种良好的密码存储实践。

0