dighasher 0.2.1 → 0.3.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 +4 -4
- data/README.md +13 -3
- data/lib/dighasher/digest_generator.rb +49 -45
- data/lib/dighasher/version.rb +1 -1
- data/lib/dighasher.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65327f504552d85df018251b7ec8ada5b8e374f5
|
4
|
+
data.tar.gz: 9186dd71c44464adb503733b951cc3a9c31b3850
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dca3b2dcae36c349cf4e8c027d9146f6e2881afc0e1e482ec3f18dbdfd459eeefd44c4126fdf3af2270b89fe39b105c3f4eed0cf4caa8f87180b529e72a52dbb
|
7
|
+
data.tar.gz: 9825734ac4d44b274134b886515898fac85b507e01e98f8a2e300a7bfe2d5353f832dfcf0fed68763d3f7d028f20ce05296fd02f2d489de69b2fee87c7ea8bf0
|
data/README.md
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/dighasher`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
4
|
|
5
|
-
|
5
|
+
This gem provide generate hash method.
|
6
|
+
Hash algorithm, MD5, SHA1, SHA256, SHA512, SHA2.
|
6
7
|
|
7
8
|
## Installation
|
8
9
|
|
@@ -22,7 +23,16 @@ Or install it yourself as:
|
|
22
23
|
|
23
24
|
## Usage
|
24
25
|
|
25
|
-
|
26
|
+
This sample generate hash by MD5.
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
require 'dighasher'
|
30
|
+
|
31
|
+
generator = Dighasher::Generator.new(Dighasher::DigestGenerator::MD5, "hash target string.")
|
32
|
+
|
33
|
+
# generate hash.
|
34
|
+
hash = generator.generate_hash
|
35
|
+
```
|
26
36
|
|
27
37
|
## Development
|
28
38
|
|
@@ -32,7 +42,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
32
42
|
|
33
43
|
## Contributing
|
34
44
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
45
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/h-shigemoto/dighasher. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
|
36
46
|
|
37
47
|
|
38
48
|
## License
|
@@ -2,54 +2,58 @@ require 'digest/md5'
|
|
2
2
|
require 'digest/sha1'
|
3
3
|
require 'digest/sha2'
|
4
4
|
|
5
|
-
#
|
6
|
-
module
|
7
|
-
|
8
|
-
# MD5 Hash Constant
|
9
|
-
MD5 = 1
|
10
|
-
# SHA1 Hash Constant
|
11
|
-
SHA1 = 2
|
12
|
-
# SHA256 Hash Constant
|
13
|
-
SHA256 = 3
|
14
|
-
# SHA512 Hash Constant
|
15
|
-
SHA512 = 4
|
16
|
-
# SHA2 Hash Constant
|
17
|
-
SHA2 = 5
|
18
|
-
|
19
|
-
# get available hash.
|
20
|
-
def self.available
|
21
|
-
"Digest::MD5, Digest::SHA1, Digest::SHA256, Digest::SHA512, Digest::SHA2(256, 384, 512)"
|
22
|
-
end
|
5
|
+
# Dighasher module.
|
6
|
+
module Dighasher
|
23
7
|
|
24
|
-
#
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
#
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
when SHA512 then
|
42
|
-
digest = Digest::SHA512.new
|
43
|
-
when SHA2 then
|
44
|
-
digest = Digest::SHA2.new(bitlen)
|
45
|
-
else
|
46
|
-
digest = nil
|
8
|
+
# Digest Instance Generator
|
9
|
+
class DigestGenerator
|
10
|
+
|
11
|
+
# MD5 Hash Constant
|
12
|
+
MD5 = 1
|
13
|
+
# SHA1 Hash Constant
|
14
|
+
SHA1 = 2
|
15
|
+
# SHA256 Hash Constant
|
16
|
+
SHA256 = 3
|
17
|
+
# SHA512 Hash Constant
|
18
|
+
SHA512 = 4
|
19
|
+
# SHA2 Hash Constant
|
20
|
+
SHA2 = 5
|
21
|
+
|
22
|
+
# get available hash.
|
23
|
+
def self.available
|
24
|
+
"Digest::MD5, Digest::SHA1, Digest::SHA256, Digest::SHA512, Digest::SHA2(256, 384, 512)"
|
47
25
|
end
|
48
26
|
|
49
|
-
#
|
50
|
-
|
51
|
-
|
27
|
+
# generate digest instance.
|
28
|
+
# @param [integer] mode Hash mode. use DigestGenerator constant.
|
29
|
+
# @param [String] str target string
|
30
|
+
# @param [integer] bitlen SHA2 bitlength. 256 or 384 or 512.
|
31
|
+
# @return [Digest] digest lib instance
|
32
|
+
def self.generate_digest(mode, str=nil, bitlen=256)
|
33
|
+
|
34
|
+
digest = nil
|
35
|
+
|
36
|
+
# generate digest instance
|
37
|
+
case mode
|
38
|
+
when MD5 then
|
39
|
+
digest = Digest::MD5.new
|
40
|
+
when SHA1 then
|
41
|
+
digest = Digest::SHA1.new
|
42
|
+
when SHA256 then
|
43
|
+
digest = Digest::SHA256.new
|
44
|
+
when SHA512 then
|
45
|
+
digest = Digest::SHA512.new
|
46
|
+
when SHA2 then
|
47
|
+
digest = Digest::SHA2.new(bitlen)
|
48
|
+
else
|
49
|
+
digest = nil
|
50
|
+
end
|
51
|
+
|
52
|
+
# set str
|
53
|
+
if (digest && str)
|
54
|
+
digest.update(str)
|
55
|
+
end
|
56
|
+
digest
|
52
57
|
end
|
53
|
-
digest
|
54
58
|
end
|
55
59
|
end
|
data/lib/dighasher/version.rb
CHANGED
data/lib/dighasher.rb
CHANGED
@@ -14,7 +14,7 @@ module Dighasher
|
|
14
14
|
def initialize(mode, str=nil, bitlen=256)
|
15
15
|
|
16
16
|
# generate digest instance
|
17
|
-
@digest = DigestGenerator::generate_digest(mode, str, bitlen)
|
17
|
+
@digest = Dighasher::DigestGenerator::generate_digest(mode, str, bitlen)
|
18
18
|
@mode = mode
|
19
19
|
@bitlen = bitlen
|
20
20
|
@base_str = str
|
@@ -26,7 +26,7 @@ module Dighasher
|
|
26
26
|
def change_mode(mode, bitlen=256)
|
27
27
|
|
28
28
|
# generate new digest instance
|
29
|
-
@digest = DigestGenerator::generate_digest(mode, @base_str, bitlen)
|
29
|
+
@digest = Dighasher::DigestGenerator::generate_digest(mode, @base_str, bitlen)
|
30
30
|
@mode = mode
|
31
31
|
@bitlen = bitlen
|
32
32
|
end
|
@@ -63,7 +63,7 @@ module Dighasher
|
|
63
63
|
# if exist temporary add string, dup @digest and add str.
|
64
64
|
eq_digest = get_temporary_digest(temp_add_str)
|
65
65
|
# generate compare digest instance.
|
66
|
-
comp_digest = DigestGenerator.generate_digest(@mode, str, @bitlen)
|
66
|
+
comp_digest = Dighasher::DigestGenerator.generate_digest(@mode, str, @bitlen)
|
67
67
|
|
68
68
|
# compare hex digest value.
|
69
69
|
return eq_digest == comp_digest.hexdigest
|
@@ -147,6 +147,6 @@ module Dighasher
|
|
147
147
|
|
148
148
|
# get available hash.
|
149
149
|
def self.available
|
150
|
-
DigestGenerator.available
|
150
|
+
Dighasher::DigestGenerator.available
|
151
151
|
end
|
152
152
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dighasher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- h.shigemoto
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|