brute_force 0.1.0 → 0.1.1

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: ba9aeaf6b85fcf3ff4d380f806be110c6b9c7137
4
- data.tar.gz: b069b4e5766acbcbbb4453ca5fe9ec7e76c45a10
3
+ metadata.gz: 4844e22bdfd282e1a2677a5df8edae17478ad445
4
+ data.tar.gz: 1a6fde10b07112d823333198fc75dd5820f92853
5
5
  SHA512:
6
- metadata.gz: e4ddc4dfd4b1040b722613840cfc935391bedd2051929652be6e688366601830a4d5d69c227970d9ed01e7e66ed00c03c446cfb83a25a91dc2e4b5afeb567b57
7
- data.tar.gz: eb0c35d91b1e8ddcd2feaf656d2a8553143f5268f8dbdf2af9bf98c2210d5690dcac97ca50e73c57050988de7dcb1cbadef5c0d7467e3d7552ae4f28829c67a7
6
+ metadata.gz: 4fc33997eec2ac40d7c5ecb353409a0916a7fba87dd290ae5f36fc165088d236159322e40f245b21918c50473616d8cb1f1d675573971dbddf679c82eb01a129
7
+ data.tar.gz: 862c4f9fa0630b6e174b4ebb0a935f4f622c93abd0e03c80f19005fc15e34cda0d68d059e0f73bc3cff2819b57cd8b419286c1e985a24c64f10b43649547d9a8
data/README.md CHANGED
@@ -30,7 +30,7 @@ Or install it yourself as:
30
30
 
31
31
  ```ruby
32
32
  #default signature
33
- BruteForce::Generator.new(letters: BruteForce::ALPHA_NUMERIC, filter: nil, starts_from: '')
33
+ BruteForce::Generator.new(letters: BruteForce::ALPHANUMERIC, filter: nil, starts_from: '')
34
34
 
35
35
  BruteForce::Generator.new
36
36
  BruteForce::Generator.new(letters: BruteForce::LOWERCASE | ['-'])
@@ -54,7 +54,7 @@ require 'brute_force'
54
54
  require 'digest/md5'
55
55
  require 'benchmark'
56
56
 
57
- BruteForce::Generator.new(letters: BruteForce::LOWER_ALPHA_NUMERIC | BruteForce::SYMBOL, starts_from: 'lolaaaa').tap do |g|
57
+ BruteForce::Generator.new(letters: BruteForce::LOWER_ALPHANUMERIC | BruteForce::ASCII_SYMBOL, starts_from: 'lolaaaa').tap do |g|
58
58
  target_hash = 'c68ab9687ec94f924c6548671d646e1b'
59
59
  count = 0
60
60
  hr = '-' * 85
@@ -78,20 +78,20 @@ end
78
78
  ```
79
79
  Status | Word | Hash | Number of attempts
80
80
  -------------------------------------------------------------------------------------
81
- Searching | lold4f[ | 043f3b74588a7cd039a73b6590acd0dd | 1000000
82
- Searching | lolf~l# | 8d7d3e5f5091b433421ae171e89763c0 | 2000000
83
- Searching | loli^rj | 84c5997b9d3ebc71c7a9010ed161a37c | 3000000
84
- Searching | loll>x | 40777367a79b9644702a03addf130542 | 4000000
85
- Searching | lolo."- | e8e72e1eea1f1315bf5f622da7241354 | 5000000
86
- Searching | lolr((t | 5dddefb07d81393a535da22d6a809ff0 | 6000000
87
- Searching | lolu".9 | 827e73d722c4631623a1ff8e973d1072 | 7000000
88
- Searching | lolxw=[ | 1269a5f1e373f6882f4aa9df61ff5153 | 8000000
89
- Searching | lol q]# | 979dfab06b4c4b0c804bd81736052c4e | 9000000
90
- Searching | lol#k}j | e30345d498bef4aeaf6a5733d42e199d | 10000000
81
+ Searching | lolc| ) | 40f14259308d216d91332fd1598b5998 | 1000000
82
+ Searching | lolf/_a | f05b19bfe63fac31107a000bbe7adfa9 | 2000000
83
+ Searching | loli!i* | a5f4c6425ec7e8e2126e008f7ae5b920 | 3000000
84
+ Searching | lollm)b | 716555993d324cefc0ff7a6d4d8bf83a | 4000000
85
+ Searching | lolo80+ | 670b92da3b79d23fc7162b0afdc5bc2b | 5000000
86
+ Searching | lolq`rc | 2a3a3e607480640e3ead5490d3388f8e | 6000000
87
+ Searching | lolt-;, | 1a90f2fde019f2e024e5940d08e26772 | 7000000
88
+ Searching | lolwz9d | 22f9a3c1139d85becfbccc4a2d89d1e3 | 8000000
89
+ Searching | lolzkz- | 6e1ceb0549bb2c535b0686c14a60ac43 | 9000000
90
+ Searching | lol"5^e | 8da39ab9f8d8a021df908a0bfa5093db | 10000000
91
91
  -------------------------------------------------------------------------------------
92
- Found | lol$123 | c68ab9687ec94f924c6548671d646e1b | 10245334
92
+ Found | lol$123 | c68ab9687ec94f924c6548671d646e1b | 10691387
93
93
  -------------------------------------------------------------------------------------
94
- 71.234000 0.000000 71.234000 ( 71.357751)
94
+ 73.062000 0.000000 73.062000 ( 73.156629)
95
95
  ```
96
96
 
97
97
  ## Development
data/lib/brute_force.rb CHANGED
@@ -3,19 +3,22 @@ require 'radix'
3
3
 
4
4
  module BruteForce
5
5
  EMPTY = ["\0"]
6
+ CONTROL = EMPTY | [*"\0".."\x1F"]
6
7
  LOWERCASE = EMPTY | [*'a'..'z']
7
8
  UPPERCASE = EMPTY | [*'A'..'Z']
8
9
  NUMERIC = EMPTY | [*'0'..'9']
9
- SYMBOL = EMPTY | [*' '..'/', *':'..'@', *'['..'`', *'{'..'~']
10
+ ASCII_SYMBOL = EMPTY | [*' '..'/', *':'..'@', *'['..'`', *'{'.."\x7F"]
11
+ ASCII_EXTENDED = EMPTY | [*"\x80".."\xFF"]
10
12
  UNICODE = EMPTY | [*"\u007B".."\u00BF", *"\u02B0".."\u037F", *"\u2000".."\u2BFF"]
11
13
 
12
- LOWER_ALPHA_NUMERIC = NUMERIC | LOWERCASE
13
- UPPER_ALPHA_NUMERIC = NUMERIC | UPPERCASE
14
- ALPHA_NUMERIC = NUMERIC | LOWERCASE | UPPERCASE
15
- ALL = ALPHA_NUMERIC | SYMBOL | UNICODE
14
+ LOWER_ALPHANUMERIC = NUMERIC | LOWERCASE
15
+ UPPER_ALPHANUMERIC = NUMERIC | UPPERCASE
16
+ ALPHANUMERIC = NUMERIC | LOWERCASE | UPPERCASE
17
+ ASCII_PRINTABLE = ASCII_SYMBOL | ALPHANUMERIC
18
+ ALL = CONTROL | ALPHANUMERIC | ASCII_SYMBOL | ASCII_EXTENDED | UNICODE
16
19
 
17
20
  class Generator
18
- def initialize(letters: ALPHA_NUMERIC, filter: nil, starts_from: '')
21
+ def initialize(letters: ALPHANUMERIC, filter: nil, starts_from: '')
19
22
  self.letters = letters
20
23
  self.filter = filter
21
24
  self.counter = word_to_number(starts_from)
@@ -25,7 +28,7 @@ module BruteForce
25
28
  begin
26
29
  word = number_to_word(self.counter)
27
30
  self.counter+=1
28
- end while !filter.nil? && (filter.is_a?(Regexp)? !filter.match(word) : !filter.call(word))
31
+ end while not allowed?(word)
29
32
  word
30
33
  end
31
34
 
@@ -39,5 +42,9 @@ module BruteForce
39
42
  def number_to_word(number)
40
43
  number.b(letters.length).to_a(letters).join
41
44
  end
45
+
46
+ def allowed?(word)
47
+ (filter.nil?)? true : (filter.is_a?(Regexp)? filter.match(word) : filter.call(word))
48
+ end
42
49
  end
43
50
  end
@@ -1,3 +1,3 @@
1
1
  module BruteForce
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brute_force
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pagliaro Alexandre