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

Security 如何将普通密码保存为备份,security,web,passwords,password-protection,password-encryption,Security,Web,Passwords,Password Protection,Password Encryption,现在我正在使用SHA256的密码保存。但在将来,SHA256可能会发生碰撞。当时我无法更改密码哈希方法。因此,任何人都可以建议以安全的方式保存纯文本备份的正确方法我假设您的问题是,当原始密码不再已知时,如何切换到更好的哈希算法 首先,现在建议使用慢密钥派生函数(如BCrypt或PBKDF2)来存储密码(而不是快速SHA*)。如果不需要知道原始密码,则不应将其以明文形式存储。冲突不是密码哈希的问题 如果您想切换到更好的散列算法,您有两个选择,要么等待用户下次登录(然后您知道原始密码),要么可以对现

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

我假设您的问题是,当原始密码不再已知时,如何切换到更好的哈希算法

首先,现在建议使用慢密钥派生函数(如BCrypt或PBKDF2)来存储密码(而不是快速SHA*)。如果不需要知道原始密码,则不应将其以明文形式存储。冲突不是密码哈希的问题

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

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

  • 我假设您的问题是,当原始密码不再已知时,如何切换到更好的哈希算法

    首先,现在建议使用慢密钥派生函数(如BCrypt或PBKDF2)来存储密码(而不是快速SHA*)。如果不需要知道原始密码,则不应将其以明文形式存储。冲突不是密码哈希的问题

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

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