【问题标题】:Are bcrypt salts accessible separately?bcrypt盐可以单独访问吗?
【发布时间】:2011-09-05 09:42:42
【问题描述】:

在 Rails 3.1 中使用 has_secure_password 时,bcrypt 会为每个用户的密码随机生成一个 salt。基于this response,我知道盐是作为密码哈希的一部分存储的。是否有可用于单独访问该盐的方法或属性,例如用于编写安全 cookie?

【问题讨论】:

    标签: ruby-on-rails salt bcrypt


    【解决方案1】:

    如果需要,您将能够获得盐和校验和。

    gem install bcrypt-ruby
    irb
    require 'bcrypt'
    
    hash = BCrypt::Password.create 'superpass'
    => "$2a$10$DtjuZD6nJtrBRLEySlSVm.bJyBMhEhVRAeiVk/GjmQdBNf7WhmDWi"
    hash.salt
    => "$2a$10$DtjuZD6nJtrBRLEySlSVm."
    hash.checksum
    "bJyBMhEhVRAeiVk/GjmQdBNf7WhmDWi"
    hash == "starbucks"
    => false
    hash == "superpass"
    => true
    

    您的盐和校验和会有所不同。

    更多信息:https://github.com/codahale/bcrypt-ruby

    【讨论】:

    • 谢谢!考虑到这一点,再加上查看the Rails secure_password model,我能够确定我需要为我的代码编写一个方法(无论如何都要整齐地访问盐)。def salt @salt ||= BCrypt::Password.new(password_digest).salt end 是完美的!
    猜你喜欢
    • 2012-07-05
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    相关资源
    最近更新 更多