module Tripcode
Constants
- SECRET
- VERSION
Public Class Methods
hash(password)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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