class Devise::Encryptors::Sha512

Uses the Sha512 hash algorithm to encrypt passwords.
= Sha512

def self.digest(password, stretches, salt, pepper)

incoming password.
Generates a default password digest based on salt, pepper and the
def self.digest(password, stretches, salt, pepper)
  digest = pepper
  stretches.times { digest = self.secure_digest(salt, digest, password, pepper) }
  digest
end

def self.secure_digest(*tokens)

--arg1--arg2--arg3--argN--
Generate a Sha512 digest joining args. Generated token is something like
def self.secure_digest(*tokens)
  ::Digest::SHA512.hexdigest('--' << tokens.flatten.join('--') << '--')
end