Доступны ли соли bcrypt отдельно?

При использовании has_secure_password в Rails 3.1 bcrypt случайным образом генерирует соль для пароля каждого пользователя. На основании этого ответа я поймите, что соль хранится как часть хэша пароля. Есть ли метод или атрибут для отдельного доступа к этой соли, например, для использования при написании безопасных файлов cookie?


person joanwolk    schedule 31.05.2011    source источник


Ответы (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

person Jesse Wolgamott    schedule 31.05.2011
comment
Спасибо! Имея это в виду, а также взгляните на безопасный_пароль Rails. model, я смог определить, что мне нужно написать метод для моего кода (во всяком случае, для аккуратного доступа к соли) ._ 1_ идеально! - person joanwolk; 02.06.2011