Module: Tripcode

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

Constant Summary collapse

VERSION =
"0.2.0"

Class Method Summary collapse

Class Method Details

.escape(str) ⇒ Object



12
13
14
# File 'lib/tripcode.rb', line 12

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

.hash(password) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/tripcode.rb', line 22

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



16
17
18
19
20
# File 'lib/tripcode.rb', line 16

def self.salt(password)
  salt =  @salt_table["#{password}H.."[1].ord % 256]
  salt += @salt_table["#{password}H.."[2].ord % 256]
  return salt
end

.sjis(str) ⇒ Object



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

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