lib/devise/encryptors/bcrypt.rb



require "bcrypt"

module Devise
  module Encryptors
    # = BCrypt
    # Uses the BCrypt hash algorithm to encrypt passwords.
    class Bcrypt < Base

      # Gererates a default password digest based on stretches, salt, pepper and the
      # incoming password. We don't strech it ourselves since BCrypt does so internally.
      def self.digest(password, stretches, salt, pepper)
        ::BCrypt::Engine.hash_secret([password, pepper].join, salt, stretches)
      end

      def self.salt
        ::BCrypt::Engine.generate_salt
      end

    end
  end
end