22 lines
560 B
Ruby
22 lines
560 B
Ruby
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
|