tripcode 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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