brute_force 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -14
- data/lib/brute_force.rb +14 -7
- data/lib/brute_force/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4844e22bdfd282e1a2677a5df8edae17478ad445
|
4
|
+
data.tar.gz: 1a6fde10b07112d823333198fc75dd5820f92853
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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::
|
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::
|
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 |
|
82
|
-
Searching | lolf
|
83
|
-
Searching | loli
|
84
|
-
Searching |
|
85
|
-
Searching |
|
86
|
-
Searching |
|
87
|
-
Searching |
|
88
|
-
Searching |
|
89
|
-
Searching |
|
90
|
-
Searching | lol
|
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 |
|
92
|
+
Found | lol$123 | c68ab9687ec94f924c6548671d646e1b | 10691387
|
93
93
|
-------------------------------------------------------------------------------------
|
94
|
-
|
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
|
-
|
10
|
+
ASCII_SYMBOL = EMPTY | [*' '..'/', *':'..'@', *'['..'`', *'{'.."\x7F"]
|
11
|
+
ASCII_EXTENDED = EMPTY | [*"\x80".."\xFF"]
|
10
12
|
UNICODE = EMPTY | [*"\u007B".."\u00BF", *"\u02B0".."\u037F", *"\u2000".."\u2BFF"]
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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:
|
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
|
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
|
data/lib/brute_force/version.rb
CHANGED