Module: Tripcode
- Defined in:
- lib/tripcode.rb,
lib/tripcode/version.rb
Constant Summary collapse
- SECRET =
"FW6I5Es311r2JV6EJSnrR2+hw37jIfGI0FB0XU5+9lua9iCCrwgkZDVRZ+1PuClqC+78FiA6hhhX\nU1oq6OyFx/MWYx6tKsYeSA8cAs969NNMQ98SzdLFD7ZifHFreNdrfub3xNQBU21rknftdESFRTUr\n44nqCZ0wyzVVDySGUZkbtyHhnj+cknbZqDu/wjhX/HjSitRbtotpozhF4C9F+MoQCr3LgKg+CiYH\ns3Phd3xk6UC2BG2EU83PignJMOCfxzA02gpVHuwy3sx7hX4yvOYBvo0kCsk7B5DURBaNWH0srWz4\nMpXRcDletGGCeKOz9Hn1WXJu78ZdxC58VDl20UIT9er5QLnWiF1giIGQXQMqBB+Rd48/suEWAOH2\nH9WYimTJWTrK397HMWepK6LJaUB5GdIk56ZAULjgZB29qx8Cl+1K0JWQ0SI5LrdjgyZZUTX8LB/6\nCoix9e6+3c05Pk6Bi1GWsMWcJUf7rL9tpsxROtq0AAQBPQ0rTlstFEziwm3vRaTZvPRboQfREta0\n9VA+tRiWfN3XP+1bbMS9exKacGLMxR/bmO5A57AgQF+bPjhif5M/OOJ6J/76q0JDHA==\n"- VERSION =
"1.0.1"
Class Method Summary collapse
- .hash(password) ⇒ Object
- .parse(string, seed = SECRET) ⇒ Object
- .secure(password, seed = SECRET) ⇒ Object
Class Method Details
.hash(password) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/tripcode.rb', line 6 def self.hash(password) return "" if password.nil? || password.empty? password = password.encode('SHIFT_JIS', 'UTF-8', undef: :replace) password.gsub!('"', '"') password.gsub!('&', '&') password.gsub!('>', '>') password.gsub!('<', '<') salt = (password.b + 'H.')[1..2] salt.gsub!(/[^\.-z]/, '.') salt.tr!(':;<=>?@[\\]^_`', 'ABCDEFGabcdef') return password.crypt(salt)[-10..-1].strip end |
.parse(string, seed = SECRET) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/tripcode.rb', line 28 def self.parse(string, seed=SECRET) name, tripcode, secure_tripcode = string.split('#') tripcode = self.hash(tripcode) secure_tripcode = self.secure(secure_tripcode, seed) name = "" if name.nil? return name, tripcode, secure_tripcode end |
.secure(password, seed = SECRET) ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/tripcode.rb', line 19 def self.secure(password, seed=SECRET) return "" if password.nil? || password.empty? seed = Base64::decode64(seed) password = password.encode('SHIFT_JIS', 'UTF-8', undef: :replace) secure_tripcode = Digest::SHA1.hexdigest(password.b + seed) secure_tripcode = Base64::encode64([secure_tripcode].pack('H*')) return secure_tripcode[0..14] end |