如何将普通密码保存为备份

时间:2013-12-13 10:22:40

标签: security web passwords password-protection password-encryption

现在我正在使用密码的SHA256保存。但是将来,SHA256可能会发生碰撞。那个时候我无法更改密码哈希方法。因此,任何人都可以建议以安全的方式保存纯文本备份的正确方法

1 个答案:

答案 0 :(得分:4)

我认为您的问题是关于如何在原始密码不再为人所知的情况下切换到更好的哈希算法。

首先,今天建议使用像BCrypt或PBKDF2这样的慢键派生函数来存储密码(而不是快速SHA *)。如果没有真正需要知道原始密码,则不应将其存储为明文。密码哈希不会出现冲突问题。

如果要切换到更好的散列算法,则有两个选项,要么等到用户下次登录(然后才知道原始密码),要么可以对现有散列进行双重散列。通常的工作流程如下所示:

  1. 首先尝试使用新算法验证输入的密码。新密码和已转换的密码不会花费更长时间进行验证。
  2. 如果不匹配,请将其与旧的哈希算法进行比较。
  3. 如果旧的哈希值匹配,那么您可以计算并存储新哈希,因为您知道密码。