我打算将我的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身份验证答案 0 :(得分:0)
您可以直接使用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)