Class: Authlogic::CryptoProviders::Sha1

Inherits:
Object
  • Object
show all
Defined in:
lib/authlogic/crypto_providers/sha1.rb

Overview

This class was made for the users transitioning from restful_authentication. I highly discourage using this crypto provider as it is far inferior to your other options. Please use any other provider offered by Authlogic.

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.join_tokenObject



9
10
11
# File 'lib/authlogic/crypto_providers/sha1.rb', line 9

def join_token
  @join_token ||= "--"
end

.stretchesObject

The number of times to loop through the encryption. This is ten because that is what restful_authentication defaults to.



15
16
17
# File 'lib/authlogic/crypto_providers/sha1.rb', line 15

def stretches
  @stretches ||= 10
end

Class Method Details

.encrypt(*tokens) ⇒ Object

Turns your raw password into a Sha1 hash.



21
22
23
24
25
26
# File 'lib/authlogic/crypto_providers/sha1.rb', line 21

def encrypt(*tokens)
  tokens = tokens.flatten
  digest = tokens.shift
  stretches.times { digest = Digest::SHA1.hexdigest([digest, *tokens].join(join_token)) }
  digest
end

.matches?(crypted, *tokens) ⇒ Boolean

Does the crypted password match the tokens? Uses the same tokens that were used to encrypt.



29
30
31
# File 'lib/authlogic/crypto_providers/sha1.rb', line 29

def matches?(crypted, *tokens)
  encrypt(*tokens) == crypted
end