Module: Tripcode

Defined in:
lib/tripcode.rb,
lib/tripcode/version.rb

Constant Summary collapse

VERSION =
"0.2.6"

Class Method Summary collapse

Class Method Details

.escape(str) ⇒ Object



8
9
10
# File 'lib/tripcode.rb', line 8

def self.escape(str)
  str.gsub(/[&<">]/, '&'=>'&amp;','<'=>'&lt;','"'=>'&quot;','>'=>'&gt;')
end

.hash(password) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/tripcode.rb', line 20

def self.hash(password)
  return "" if password.nil? || password.empty?
  password = Tripcode.sjis(password)
  password = Tripcode.escape(password)
  salt = Tripcode.salt(password)
  return password.crypt(salt)[-10..-1].strip
end

.salt(password) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/tripcode.rb', line 12

def self.salt(password)
  password = password.encode("ASCII", "UTF-8", invalid: :replace, undef: :replace, replace: '.')
  salt = (password[0..2] + 'H.')
  salt.gsub!('[^\.-z]', '.')
  salt.tr!(':;<=>?@[\\]^_`','ABCDEFGabcdef')
  return salt[1..2]
end

.sjis(str) ⇒ Object



4
5
6
# File 'lib/tripcode.rb', line 4

def self.sjis(str)
  str.encode('shift_jis', 'utf-8', invalid: :replace, undef: :replace, replace: '')
end