想要将网站密码加密从SHA1转换为SHA256

Ada*_*dam 8 sha1 sha256

只是寻找一些建议.我有一个拥有大约2500名用户的网站 - 规模虽小但正在增长.我在密码上使用SHA1加密来构建它.我已经阅读过SHA1是不安全的,并希望改为使用Salt来说SHA256.

有没有人对如何进行这样的转换有任何建议?如果我可以解密密码并重新哈希它们但它似乎没有能力,那就太好了.

亚当

tda*_*ers 13

通常的解决方法是:

  1. 使哈希密码列更大以容纳sha256哈希,并添加"盐"列
  2. 最初将salt字段设置为NULL,并调整密码检查代码,以便NULL salt表示sha1,非NULL表示sha256
  3. 一旦sha1-use成功登录,使用salt将密码重新哈希到sha256,并更新数据库.

随着时间的推移,用户将自己迁移到sha256; 唯一的问题是用户只是偶尔登录或根本不登录.对于这些,您可能希望发送提醒电子邮件,或者甚至威胁要关闭他们的帐户如果他们在第X天之前没有登录(尽管不提供实际原因......)


Jus*_*ith 7

为了澄清,SHA是一种散列算法,它(通常)是一条单行道.您无法解密哈希,这是使用它们验证密码的强度.你正在走向正确的轨道,转向盐渍哈希,这就是我将如何做到的.

获取密码的唯一方法是让用户自己输入密码.当用户访问您的站点并登录时,请逐个更新密码.在您的身份验证方法中,我将执行您现在正在执行的哈希,并将其与现有字段中的内容进行比较(此处没有任何新内容).假设它匹配,继续使用SHA256进行salt/re-hash,并更新数据库中的密码字段.如果需要,请在您的用户表中跟踪哪些用户已更新.

我做了很多假设,但这就是我过去解决哈希算法舞蹈的方法.祝好运!