Module: Shield::Password

Defined in:
lib/shield.rb

Constant Summary collapse

Error =
Class.new(StandardError)
MAX_LEN =

DOS attack fix

Excessively long passwords (e.g. 1MB strings) would hang a server.

@see: www.djangoproject.com/weblog/2013/sep/15/security/

4096

Class Method Summary collapse

Class Method Details

.check(password, encrypted) ⇒ Object



115
116
117
118
119
# File 'lib/shield.rb', line 115

def self.check(password, encrypted)
  sha512, salt = encrypted.to_s[0...128], encrypted.to_s[128..-1]

  Armor.compare(digest(password, salt), sha512)
end

.encrypt(password, salt = generate_salt) ⇒ Object



111
112
113
# File 'lib/shield.rb', line 111

def self.encrypt(password, salt = generate_salt)
  digest(password, salt) + salt
end