class DeviseMeteor::BCryptSHA256Hasher
BCryptSHA256Hasher
implements a BCrypt password hasher using SHA256.
Public Class Methods
new()
click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 53 def initialize @algorithm = :bcrypt_sha256 @cost = 10 @digest = OpenSSL::Digest::SHA256.new end
Public Instance Methods
encode(password, salt)
click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 67 def encode(password, salt) password = get_password_string(password) hash = BCrypt::Engine.hash_secret(password, salt) return hash end
get_password_string(password)
click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 63 def get_password_string(password) @digest.digest(password) unless @digest.nil? end
salt()
click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 59 def salt BCrypt::Engine.generate_salt(@cost) end
verify(password, encoded)
click to toggle source
# File lib/devise_meteor/strategies/hasher.rb, line 73 def verify(password, encoded) password_digest = get_password_string(password) hash = BCrypt::Engine.hash_secret(password_digest, encoded) Devise.secure_compare(encoded, hash) constant_time_compare(encoded, hash) end