我计划将我的rails应用程序从2.3.5升级到4.1。
在老版本的rails中,bcrypt-ruby有两个字段(hashed_password,salt)。
现在,在最新版本的rails中,我们只有一个名为password_digest的字段。
现在,我需要将现有用户的密码从hashed_password、salt更新为password_digest字段。
所以我正在计划是否有任何过程或算法来迁移现有的用户密码。
示例:
1) hashed_password: d83894e27821bd43eeb7a0001037329e1ddfe28a 2)盐: 701260468044000.6918523640121411
现在我们需要更改为
3) password_digest : 666699d998933300.6918d83894e2782e1ddfe28a
现在,如果用户使用他的密码登录,它应该允许登录。
注意:我没有使用任何像authlogic或devise这样的身份验证工具。我使用的是使用bcrypt-ruby的纯rails身份验证
发布于 2014-07-04 02:00:24
您可以直接使用BCrypt来升级现有的pass_hash和salt:
def migrate_password(hashed_password, salt)
Password.new(BCrypt::Engine.hash_secret(hashed_password,salt))
end您可以像这样使用它:
salt = 701260468044000.6918523640121411
secret = "d83894e27821bd43eeb7a0001037329e1ddfe28a"
password_digest = migrate_password(secret, salt)https://stackoverflow.com/questions/24553904
复制相似问题