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

最佳答案

如果需要,您将可以获取盐和校验和。

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

关于ruby-on-rails - 是否可以单独访问bcrypt盐?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6186540/

10-14 11:22
查看更多