Доступны ли соли bcrypt отдельно? - PullRequest
10 голосов
/ 31 мая 2011

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

1 Ответ

15 голосов
/ 31 мая 2011

Вы сможете получить соль и контрольную сумму, если вам это нужно.

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

...