Sha256: 4b6cbda1424c1e8399be471c921470a8d5ad1efa1806f07ed91bb08fbfee12c3
Contents?: true
Size: 622 Bytes
Versions: 2
Compression:
Stored size: 622 Bytes
Contents
require 'digest/sha1' SALT_LENGTH=30 ALPHA = ('A'..'Z').to_a + ('a'..'z').to_a + ('0'..'9').to_a def hash_fn(str) Digest::SHA1.hexdigest str end def generate_salt (1..SALT_LENGTH).map{ALPHA.sample}.join end def salted_hash(str,salt) res = str 100.times do res = hash_fn(res+salt) end res end def salty(str) salt = generate_salt res = salted_hash(str,salt) n = str.length res[0...n] + salt + res[n..-1] end def salty_eq(unhashed,hashed) n = unhashed.length salt = hashed[n,SALT_LENGTH] myhashed = hashed[0...n] + hashed[n+SALT_LENGTH..-1] myhashed == salted_hash(unhashed,salt) end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
salty-0.0.5 | lib/salty.rb |
salty-0.0.4 | lib/salty.rb |