Module: Tzispa::Helpers::Security
- Defined in:
- lib/tzispa/helpers/security.rb
Defined Under Namespace
Classes: Identity
Instance Method Summary collapse
- #hash_password(password, salt) ⇒ Object
- #hash_password?(hashed, pwd, salt) ⇒ Boolean
- #secret(length) ⇒ Object
- #sign_array(astr, salt = nil) ⇒ Object
- #uuid ⇒ Object
Instance Method Details
#hash_password(password, salt) ⇒ Object
49 50 51 |
# File 'lib/tzispa/helpers/security.rb', line 49 def hash_password(password, salt) Digest::MD5::hexdigest "#{password}::#{salt}" end |
#hash_password?(hashed, pwd, salt) ⇒ Boolean
53 54 55 |
# File 'lib/tzispa/helpers/security.rb', line 53 def hash_password?(hashed, pwd, salt) hashed == hash_password(pwd, salt) end |
#secret(length) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/tzispa/helpers/security.rb', line 10 def secret(length) alfanb = (['!', '"', '·', '$', '%', '&', '/', '(', ')', '=', '?', '+', '@', '#', ',', '.', '-', ';', ':', '_', '[', ']', '>', '<', '*'] << [('a'..'z'), ('0'..'9'), ('A'..'Z')].map { |i| i.to_a }).flatten (0...length).map { alfanb[rand(alfanb.length)] }.join end |
#sign_array(astr, salt = nil) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/tzispa/helpers/security.rb', line 39 def sign_array(astr, salt=nil) sign, i = String.new, 0 astr.each { |s| i = i + 1 sign << "#{"_"*i}#{s}" } sign << "**#{salt}" Digest::SHA1.hexdigest sign end |
#uuid ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/tzispa/helpers/security.rb', line 17 def uuid sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', # 32 bits for "time_low" rand(0..0xffff), rand(0..0xffff), # 16 bits for "time_mid" rand(0..0xffff), # 16 bits for "time_hi_and_version", #3 four most significant bits holds version number 4 rand(0..0x0fff) | 0x4000, # 16 bits, 8 bits for "clk_seq_hi_res", # 8 bits for "clk_seq_low", # two most significant bits holds zero and one for variant DCE1.1 rand(0..0x3fff) | 0x8000, # 48 bits for "node" rand(0..0xffff), rand(0..0xffff), rand(0..0xffff) ) end |