0

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

  1. 重置所有当前用户的密码并强制他们继续“忘记密码”程序
  2. 使用任何类型的纯文本密码(例如,即使是在用户第一次登录我的新应用程序时暂时使用)。
  3. 在 Rails 应用程序中也使用 SHA1 相同的加密程序(我需要使用 BCrypt 代替)。

我认为最好的方法(如我所读)是让用户使用他们的旧密码登录我的新应用程序(我不知道该怎么做),然后加密他们的密码(通过 BCrypt)并按照在 Rails 应用程序中新注册用户的密码加密过程相同。

我感谢所有解决此问题的建议解决方案。

4

1 回答 1

1

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

  • 在 Rails 应用程序的用户表中添加一个 sha1_password 字段。
  • 修改认证为...
    • 检查他们的 bcrypt 密码(如果存在)。
    • 如果他们的新 bcrypt 密码字段为空,请检查 sha1_password。
    • 如果匹配,您知道他们正在迁移,并且您也有他们的纯文本密码。
    • 设置他们的密码字段。
  • 结束。

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

于 2016-09-18T15:41:45.137 回答