迁移由Bcrypt加密的SHA1盐渍哈希

时间:2016-09-18 15:05:47

标签: ruby-on-rails sha1 bcrypt bcrypt-ruby

我有一个旧的应用程序(基于.Net C#构建)包括带有散列密码sha1(password . salt)的用户表,以及我需要将此数据安全地迁移到我的新 Rails < / strong>应用程序(已使用bcrypt-ruby gem加密密码)并寻找此问题的最佳解决方案但避免使用以下类型的解决方案:

  1. 重置所有当前用户&#39;密码并强制他们继续 &#39;忘记密码&#39;过程
  2. 使用任何类型的纯文本密码(例如,当用户首次登录我的新应用程序时,即使是临时密码)。
  3. 在Rails应用程序中也使用SHA1相同的加密程序(我需要使用BCrypt 代替)。
  4. 我认为最好的方法(正如我读过的)是让用户使用旧密码登录我的新应用程序(我不知道该怎么做),然后加密他们的密码(通过BCrypt)并遵循新注册用户的相同程序&#39; Rails应用程序中的密码加密。

    我感谢所有建议的解决方案来解决这个问题。

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。你需要......

  • 将sha1_password字段添加到Rails应用程序中的Users表。
  • 将身份验证修改为...
    • 检查他们的密码是否存在。
    • 如果新的bcrypt密码字段为空,请检查sha1_password。
    • 如果匹配,您知道他们正在迁移,并且您也有他们的纯文本密码。
    • 设置他们的密码密码字段。
  • 结束。

这将允许您的用户随着时间的推移进行迁移。然后在某些时候你决定让其他人去“重置密码”路线,或者至少开始用电子邮件烦扰他们并最终完全切换到bcrypt。