Sha256: 82c5782958b75fd358ab79255eb93972aeae7a0558a184430b4d5142b6c8082c

Contents?: true

Size: 675 Bytes

Versions: 24

Compression:

Stored size: 675 Bytes

Contents

# frozen_string_literal: true

require 'bcrypt'

module Devise
  module Encryptor
    def self.digest(klass, password)
      if klass.pepper.present?
        password = "#{password}#{klass.pepper}"
      end
      ::BCrypt::Password.create(password, cost: klass.stretches).to_s
    end

    def self.compare(klass, hashed_password, password)
      return false if hashed_password.blank?
      bcrypt   = ::BCrypt::Password.new(hashed_password)
      if klass.pepper.present?
        password = "#{password}#{klass.pepper}"
      end
      password = ::BCrypt::Engine.hash_secret(password, bcrypt.salt)
      Devise.secure_compare(password, hashed_password)
    end
  end
end

Version data entries

24 entries across 23 versions & 4 rubygems

Version Path
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.1.0/gems/devise-4.9.4/lib/devise/encryptor.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/devise-4.9.4/lib/devise/encryptor.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/devise-4.9.4/lib/devise/encryptor.rb
devise-4.9.4 lib/devise/encryptor.rb
devise-4.9.3 lib/devise/encryptor.rb
devise-4.9.2 lib/devise/encryptor.rb
devise-4.9.1 lib/devise/encryptor.rb
devise-4.9.0 lib/devise/encryptor.rb
devise-4.8.1 lib/devise/encryptor.rb
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/devise-4.8.0/lib/devise/encryptor.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/devise-4.8.0/lib/devise/encryptor.rb
devise-4.8.0 lib/devise/encryptor.rb
devise-4.7.3 lib/devise/encryptor.rb
devise-4.7.2 lib/devise/encryptor.rb
devise-4.7.1 lib/devise/encryptor.rb
devise-4.7.0 lib/devise/encryptor.rb
devise-4.6.2 lib/devise/encryptor.rb
devise-4.6.1 lib/devise/encryptor.rb
devise-4.6.0 lib/devise/encryptor.rb
devise-4.5.0 lib/devise/encryptor.rb