【发布时间】:2011-09-05 09:42:42
【问题描述】:
在 Rails 3.1 中使用 has_secure_password 时,bcrypt 会为每个用户的密码随机生成一个 salt。基于this response,我知道盐是作为密码哈希的一部分存储的。是否有可用于单独访问该盐的方法或属性,例如用于编写安全 cookie?
【问题讨论】:
标签: ruby-on-rails salt bcrypt
在 Rails 3.1 中使用 has_secure_password 时,bcrypt 会为每个用户的密码随机生成一个 salt。基于this response,我知道盐是作为密码哈希的一部分存储的。是否有可用于单独访问该盐的方法或属性,例如用于编写安全 cookie?
【问题讨论】:
标签: ruby-on-rails salt bcrypt
如果需要,您将能够获得盐和校验和。
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
您的盐和校验和会有所不同。
【讨论】:
def salt @salt ||= BCrypt::Password.new(password_digest).salt end 是完美的!