tripcode 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df2f156f2aa936f805da09b2a44759163163fb7e
4
- data.tar.gz: b8290f33f081bacc659fae427a62b18af92f722e
3
+ metadata.gz: a3781a4b5bf0f3fcf18ca9845c7eecc687830b86
4
+ data.tar.gz: b1cb16cea9a16536d6b6d2091eb33471bfdd1c2a
5
5
  SHA512:
6
- metadata.gz: ea9f7ca8ab09c90a02a1a697d7803381f6910792130ed4b1a72f93074dbea238b7dc1beb0ea80fb93d534a5adb8cd8b3e7fc21acc093dace896b47bc163fc596
7
- data.tar.gz: f8769bf8d6da626b95d166d5a68bdc23ee571e3844e0a9bebb42d4698866e8b646211aeb1ed650aeb40e2e70ef8160990ef7c669c75fb65025ad1f0a71311de6
6
+ metadata.gz: 7cacedf4cd8c8a45289d8151b67d3afe2a9e6c14aceeffb5f85d794f4071716eecaf6861f6e81a281d84c83f5a74898f6ac4bf631116d4e7dc7a6f7d3d066146
7
+ data.tar.gz: 8f0552d4830b51f267de924a842a21a93e9f5061dc3f58ede92007fa4d46245ba00a0ac16a3a3ca4d5b24a929b276a1cd4089c72af5fbcdbbabc7131559395c1
data/README.md CHANGED
@@ -21,8 +21,10 @@ Or install it yourself as:
21
21
 
22
22
  ## Usage
23
23
 
24
- require 'tripcode'
25
- Tripcode.hash('github') # => lLf/rxkwgg
24
+ ```ruby
25
+ require 'tripcode'
26
+ Tripcode.hash('github') # => lLf/rxkwgg
27
+ ```
26
28
 
27
29
  Or from the terminal
28
30
 
@@ -1,13 +1,29 @@
1
1
  require "tripcode/version"
2
2
 
3
3
  module Tripcode
4
+ @salt_table = ('.' * 47).split('') + ['/'] + ('0'..'9').to_a
5
+ @salt_table += ('A'..'G').to_a + ('A'..'Z').to_a + ('a'..'f').to_a
6
+ @salt_table += ('a'..'z').to_a + ('.' * 133).split('')
7
+
8
+ def self.sjis(str)
9
+ str.encode("shift_jis", invalid: :replace, undef: :replace, replace: '')
10
+ end
11
+
12
+ def self.escape(str)
13
+ str.gsub(/[&<">]/, '&'=>'&amp;','<'=>'&lt;','"'=>'&quot;','>'=>'&gt;')
14
+ end
15
+
16
+ def self.salt(password)
17
+ salt = @salt_table["#{password}H.."[1].ord % 256]
18
+ salt += @salt_table["#{password}H.."[2].ord % 256]
19
+ return salt
20
+ end
21
+
4
22
  def self.hash(password)
5
23
  return "" if password.nil? || password.empty?
6
- password = password.strip
7
- password = password.gsub('&', '&amp;')
8
- salt = (password + 'H.')[1..2]
9
- salt.gsub!(/[^\.-z]/, '.')
10
- salt.tr!(':;<=>?@[\]^_`','ABCDEFGabcdef')
24
+ password = Tripcode.sjis(password)
25
+ password = Tripcode.escape(password)
26
+ salt = Tripcode.salt(password)
11
27
  return password.crypt(salt)[-10..-1].strip
12
28
  end
13
29
  end
@@ -1,3 +1,3 @@
1
1
  module Tripcode
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tripcode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Jensen