迁移 SHA1 加盐哈希以由 Bcrypt 加密
Migrate SHA1 Salted Hashes To Be Encrypted by Bcrypt
我有一个旧应用程序(基于 .Net C# 构建)包括用户 table 和散列密码 sha1(password . salt)
,我需要安全地迁移此数据 到我的新 Rails 应用程序(已经使用 bcrypt-ruby gem
加密密码)并寻找此问题的最佳解决方案 但要避免以下几种解决方案:
- 重置所有当前用户的密码并强制他们继续
'Forget password' 过程
- 使用任何类型的纯文本密码(例如,即使在用户首次登录我的新应用程序时临时使用)。
- 在 Rails 应用程序中也使用 SHA1 相同的加密程序(我需要使用 BCrypt
相反)。
我认为最好的方法(正如我所读到的)是让用户使用他们的旧密码登录我的新应用程序(我不知道该怎么做)然后加密他们的密码(通过BCrypt) 并按照 Rails app.
中新注册用户的密码加密相同的过程
感谢所有解决此问题的建议解决方案。
你走在正确的轨道上。你需要...
- 在 Rails 应用程序中为您的用户 table 添加一个 sha1_password 字段。
- 将身份验证修改为...
- 检查他们的 bcrypt 密码是否存在。
- 如果他们的新 bcrypt 密码字段为空,请检查 sha1_password。
- 如果匹配,您就知道他们正在迁移,并且您也有他们的纯文本密码。
- 设置他们的密码字段。
- 结束。
这将允许您的用户随着时间的推移迁移。然后在某个时候你决定让剩下的走 'reset password' 路线或者至少开始用电子邮件烦扰他们并最终完全切换到 bcrypt。
我有一个旧应用程序(基于 .Net C# 构建)包括用户 table 和散列密码 sha1(password . salt)
,我需要安全地迁移此数据 到我的新 Rails 应用程序(已经使用 bcrypt-ruby gem
加密密码)并寻找此问题的最佳解决方案 但要避免以下几种解决方案:
- 重置所有当前用户的密码并强制他们继续 'Forget password' 过程
- 使用任何类型的纯文本密码(例如,即使在用户首次登录我的新应用程序时临时使用)。
- 在 Rails 应用程序中也使用 SHA1 相同的加密程序(我需要使用 BCrypt 相反)。
我认为最好的方法(正如我所读到的)是让用户使用他们的旧密码登录我的新应用程序(我不知道该怎么做)然后加密他们的密码(通过BCrypt) 并按照 Rails app.
中新注册用户的密码加密相同的过程感谢所有解决此问题的建议解决方案。
你走在正确的轨道上。你需要...
- 在 Rails 应用程序中为您的用户 table 添加一个 sha1_password 字段。
- 将身份验证修改为...
- 检查他们的 bcrypt 密码是否存在。
- 如果他们的新 bcrypt 密码字段为空,请检查 sha1_password。
- 如果匹配,您就知道他们正在迁移,并且您也有他们的纯文本密码。
- 设置他们的密码字段。
- 结束。
这将允许您的用户随着时间的推移迁移。然后在某个时候你决定让剩下的走 'reset password' 路线或者至少开始用电子邮件烦扰他们并最终完全切换到 bcrypt。