【问题标题】:bcrypt-ruby upgrade password from hashed_password fields, salt to password_digest fieldbcrypt-ruby 将密码从 hashed_pa​​ssword 字段,盐到 password_digest 字段
【发布时间】:2014-07-04 02:00:24
【问题描述】:

我计划将我的 rails 应用程序从 2.3.5 升级到 4.1。

在旧版本的 rails bcrypt-ruby 中有两个字段(hashed_pa​​ssword、salt)。

现在,在最新版本的 Rails 中,我们只有一个名为 password_digest 的字段。

现在我需要将现有用户密码从 hashed_pa​​ssword、salt 升级到 password_digest 字段。

所以我正在计划是否有任何迁移现有用户密码的过程或算法。

例子:

1) hashed_pa​​ssword: d83894e27821bd43eeb7a0001037329e1ddfe28a 2)盐:701260468044000.6918523640121411

现在我们需要改成

3) 密码摘要:666699d998933300.6918d83894e2782e1ddfe28a

现在如果用户使用他的密码登录它应该允许登录。

注意:我没有使用任何身份验证 gem,例如 authlogic 或 devise。我正在使用 bcrypt-ruby 的普通 rails 身份验证

【问题讨论】:

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


    【解决方案1】:

    您可以直接使用 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)
    

    【讨论】:

    猜你喜欢
    • 2019-03-23
    • 1970-01-01
    • 2020-04-29
    • 2011-10-29
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    相关资源
    最近更新 更多