cobreak 0.0.3 → 0.0.9

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
  SHA256:
3
- metadata.gz: 7a5001f7a0dd1c7fcf88d797680c7ed5b0171850ab975292b3d37b3004d775e5
4
- data.tar.gz: 719ef47f110dc0f72b6d1feb30e8a4aff4ef1f0c51aab766d909881ac5590909
3
+ metadata.gz: 2ba7b5f95bbe02154240d40486b32a78907bf9ceac8f34b0e2a553210c5dd553
4
+ data.tar.gz: d3ac3aec002c8ab20acef7a2d1bae39ec2343cc60eff7fc620e504071143c248
5
5
  SHA512:
6
- metadata.gz: 400ffdecc20b1abdaa6aed69338df523ba7695460fd95cd242c02d79052d02c85fbc6f0cda523c0d14a663132f49c95eddc0bed06e8421b3f74f7036c2b82328
7
- data.tar.gz: a5e9262ba3566ed6b580830e40039d353c081b4c715ef676d3fd94179a0aaa0859175c911bfe7835420400f33c16fa6b11487e79283fa7cacd88c9b396bd5c6c
6
+ metadata.gz: 6af73bb62f17ebc2611c2fdec3b3df6e71b7c4c17496a2057ff52b9e60ccd89e30c965ca82ac1d78d2004159eade0eb67d7068eaf77f8780908b05e50a95303e
7
+ data.tar.gz: 1e3d4e82fbcd1cb43f2b0b23305dd90b9453ce12fd88de8d4eaf40a9af58e46514f3a8324dab7cd63848d570637c727a832ab6b05175cb53d5f5df6258348db3
data/README.md CHANGED
@@ -31,33 +31,20 @@ The CoBreak script is an cipher and cryptography tool made with the purpose of f
31
31
  - SHA-384
32
32
  - SHA-512
33
33
  - RIPEMD-160
34
- ### Installation in termux
35
-
36
- > $ **apt update**
37
-
38
- > $ **apt upgrade**
39
-
40
- > $ **apt install git**
41
-
42
- > $ **apt install ruby**
43
-
44
- > $ **git clone https://github.com/BreakerBox/CoBreak.git/**
45
-
46
- > $ **cd CoBreak**
47
-
48
- > $ **bundle install**
34
+ # Setup
35
+ ---
36
+ ###add to Gemfile:
49
37
 
50
- > $ **ruby CoBreak.rb --help**
38
+ > $ **gem 'cobreak'**
51
39
 
52
- ### Installation in others
40
+ ###and then execute:
53
41
 
54
- > $ **git clone https://github.com/BreakerBox/CoBreak.git/**
42
+ > $ **bundle**
55
43
 
56
- > $ **cd CoBreak**
44
+ ###Or install it yourself as:
57
45
 
58
46
  > $ **bundle install**
59
47
 
60
- > $ **ruby CoBreak --help**
61
48
 
62
49
  ---
63
50
  # Version
data/cobreak.gemspec CHANGED
@@ -1,12 +1,17 @@
1
- Gem::Specification.new do |s|
2
- s.name = 'cobreak'
3
- s.version = '0.0.3'
4
- s.executables << "cobreak"
5
- s.description = "The CoBreak script is an cipher and cryptography tool"
6
- s.authors = ["BreakerBox"]
7
- s.email = 'breakerhtb@gmail.com'
8
- s.summary = "My very first"
9
- s.files = Dir["{lib}/**/*", "bin/*", "*.gemspec", "*.txt", "Gemfile", "LICENSE", "*.md"]
10
- s.homepage = 'https://github.com/BreakerBox/CoBreak.git'
11
- s.license = 'MIT'
1
+ Gem::Specification.new do |info|
2
+ info.name = 'cobreak'
3
+ info.version = '0.0.9'
4
+ info.executables << "cobreak"
5
+ info.description = "The CoBreak script is an cipher and cryptography tool"
6
+ info.add_development_dependency "bundler", "~> 1.5"
7
+ info.add_development_dependency "Digest", "~> 3.0.0"
8
+ info.add_development_dependency "sequel", "~> 5.44.0"
9
+ info.add_development_dependency "sqlite3", "~> 1.4.2"
10
+ info.authors = ["BreakerBox"]
11
+ info.email = 'breakerhtb@gmail.com'
12
+ info.summary = "Force Brute, Cipher, Cryptography"
13
+ info.files = Dir["{lib}/**/*.rb"] + Dir["{lib}/**/show/*.db", "{lib}/**/hash/hash.db", "bin/*.rb", "*.gemspec", "diccionario.txt", "Gemfile", "LICENSE", "*.md"]
14
+ info.homepage = 'https://github.com/BreakerBox/CoBreak'
15
+ info.license = 'MIT'
16
+ info.post_install_message = "thanks for installing my gem"
12
17
  end
@@ -0,0 +1,10 @@
1
+ module CoBreak
2
+ class Binary
3
+ def self.binary(dato)
4
+ return dato.unpack("B*").join('')
5
+ end
6
+ def self.hexbinary(dato)
7
+ return [dato].pack("B*")
8
+ end
9
+ end
10
+ end
@@ -1,16 +1,13 @@
1
1
  class CesarCifrado
2
- attr_accessor :dato
3
- def initialize(dato = nil)
4
- @dato = dato
5
- end
6
2
  def cesar(dato, rotasiones, orientacion = 1)
3
+ cesar = OpenStruct.new
4
+ cesar.cad_rot = []
7
5
  alfa_mayus = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
8
6
  alfa_minus = "abcdefghijklmnopqrstuvwxyz"
9
7
  alf = 26
10
8
  lit_mayus = 65
11
9
  lit_minus = 97
12
10
  cad_rot = ""
13
- print "\e[1;32m[\e[0m+\e[1;32m]\e[0m CipherText: "
14
11
  for letra in dato.chars
15
12
  if !letra.match(/^[[:alpha:]]$/)
16
13
  cad_rot += letra
@@ -25,11 +22,9 @@ class CesarCifrado
25
22
  var_ascii = letra.ord
26
23
  rot_ver = rotasiones * orientacion
27
24
  new_pos = (var_ascii - limit + rot_ver) % alf
28
- cad_rot = alfabeto[new_pos]
29
- print cad_rot
25
+ cesar.cad_rot << alfabeto[new_pos]
30
26
  end
31
- puts "\n\e[1;32m[\e[0m+\e[1;32m]\e[0m Rotations Number: #{rotasiones}"
27
+ return cesar.cad_rot.join('')
32
28
  end
33
29
  end
34
- CifraCesar = CesarCifrado.new
35
- DecifraCesar = CesarCifrado.new
30
+ Cesar = CesarCifrado.new
@@ -2,31 +2,33 @@ require 'base64'
2
2
  require 'base32'
3
3
  require 'base16'
4
4
  require 'ascii85'
5
-
6
- class Cifrado
7
- attr_accessor :data
8
- def initialize(data = nil)
9
- @data = data
10
- end
11
- def base16(dato)
12
- bas16 = Base16.encode16(dato)
13
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{bas16}\e[0m"
14
- end
15
- def base32(dato)
16
- bas32 = Base32.encode(dato)
17
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{bas32}\e[0m"
18
- end
19
- def base64(dato)
20
- bas64 = Base64.encode64(dato)
21
- print "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{bas64}"
22
- end
23
- def binary(dato)
24
- result = dato.unpack("B*").join('')
25
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{result}"
26
- end
27
- def ascii85(dato)
28
- asci85 = Ascii85.encode(dato)
29
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{asci85}"
5
+ require 'cobreak/cesar'
6
+ require 'cobreak/binary'
7
+ module CoBreak
8
+ class Cifrado
9
+ def self.cipher(mode, dato)
10
+ cipher = OpenStruct.new
11
+ cipher.mode = mode
12
+ cipher.dato = dato
13
+ if (cipher.mode.eql?('base16'))
14
+ cipher.result = Base16.encode16(dato)
15
+ elsif (cipher.mode.eql?('base32'))
16
+ cipher.result = Base32.encode(dato)
17
+ elsif (cipher.mode.eql?('base64'))
18
+ cipher.result = Base64.encode64(dato)
19
+ elsif (cipher.mode.eql?('ascii85'))
20
+ cipher.result = Ascii85.encode(dato)
21
+ elsif (cipher.mode.eql?('cesar'))
22
+ cipher.result = Cesar.cesar(dato, ARGV[0].to_i)
23
+ elsif (cipher.mode.eql?('binary'))
24
+ cipher.result = CoBreak::Binary.binary(dato)
25
+ end
26
+ unless (cipher.result.nil?) or (cipher.result.eql?(cipher.dato))
27
+ puts "\n\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{cipher.result}"
28
+ puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Number Rotations: #{ARGV[0]}" if (cipher.mode.eql?('cesar'))
29
+ else
30
+ puts "\e[1;31m[\e[0m+\e[1;31m]\e[0m Not Cipher Text..."
31
+ end
32
+ end
30
33
  end
31
34
  end
32
- Cifra = Cifrado.new
@@ -8,7 +8,6 @@ module CoBreak
8
8
  begin
9
9
  require 'cobreak/cifrado'
10
10
  require 'cobreak/decifrado'
11
- require 'cobreak/Cesar'
12
11
  require 'cobreak/encrypt'
13
12
  require 'cobreak/decrypt'
14
13
  rescue LoadError => e
@@ -23,72 +22,25 @@ module CoBreak
23
22
  @options = $options
24
23
  @options.enc = "" if @options.enc.nil? == true
25
24
  @options.dec = "" if @options.dec.nil? == true
26
- if (@options.enc.casecmp?('base16')) or (@options.dec.casecmp?('base16'));
25
+ @options.cipher = %w[Base16 Base32 Base64 Ascii85 Binary Cesar]
26
+ if (@options.cipher.include?(@options.enc.capitalize)) or (@options.cipher.include?(@options.dec.capitalize));
27
27
  if (File.exists?(@options.algo));
28
28
  IO.foreach(@options.algo){|line|
29
- line.chomp!
30
- Cifra::base16(line.to_s) if (@options.enc.casecmp?('base16'))
31
- Decifra::base16(line.to_s) if (@options.dec.casecmp?('base16'))
29
+ line.chomp!
30
+ if (@options.cipher?(@options.enc.capitalize))
31
+ CoBreak::Cifrado.cipher(line.to_s)
32
+ end
33
+ if (@options.cipher.include?(@options.dec.capitalize))
34
+ CoBreak::Decifrado.cipher(line.to_s)
35
+ end
32
36
  }
33
- else;
34
- Cifra::base16(@options.algo.to_s) if (@options.enc.casecmp?('base16'))
35
- Decifra::base16(@options.algo.to_s) if (@options.dec.casecmp?('base16'))
36
- end
37
- elsif (@options.enc.casecmp?('base32')) or (@options.dec.casecmp?('base32'));
38
- if (File.exists?(@options.algo));
39
- IO.foreach(@options.algo){|line|
40
- line.chomp!
41
- Cifra::base32(line.to_s) if (@options.enc.casecmp?('base32'))
42
- Decifra::base32(line.to_s) if (@options.dec.casecmp('base32'))
43
- }
44
- else;
45
- Cifra::base32(@options.algo.to_s) if (@options.enc.casecmp?('base32'))
46
- Decifra::base32(@options.algo.to_s) if (@options.dec.casecmp?('base32'))
47
- end
48
- elsif (@options.enc.casecmp?('base64')) or (@options.dec.casecmp?('base64'));
49
- if (File.exists?(@options.algo));
50
- IO.foreach(@options.algo){|line|
51
- line.chomp!
52
- Cifra::base64(line.to_s) if (@options.enc.casecmp?('base64'))
53
- Decifra::base64(line.to_s) if (@options.dec.casecmp?('base64'))
54
- }
55
- else;
56
- Cifra::base64(@options.algo.to_s) if (@options.enc.casecmp?('base64'))
57
- Decifra::base64(@options.algo.to_s) if (@options.dec.casecmp?('base64'))
58
- end
59
- elsif (@options.enc.casecmp?('ascii85')) or (@options.dec.casecmp?('ascii85'));
60
- if (File.exists?(@options.algo));
61
- IO.foreach(@options.algo){|line|
62
- line.chomp!
63
- Cifra::ascii85(line.to_s) if (@options.enc.casecmp?('ascii85'))
64
- Decifra::ascii85(line.to_s) if (@options.dec.casecmp?('ascii85'))
65
- }
66
- else;
67
- Cifra::ascii85(@options.algo.to_s) if (@options.enc.casecmp?('ascii85'))
68
- Decifra::ascii85(@options.algo.to_s) if (@options.dec.casecmp?('ascii85'))
69
- end
70
- elsif (@options.enc.casecmp?('binary')) or (@options.dec.casecmp?('binary'));
71
- if (File.exists?(@options.algo));
72
- IO.foreach(@options.algo){|line|
73
- line.chomp!
74
- Cifra::binary(line.to_s) if (@options.enc.casecmp?('binary'))
75
- Decifra::binary(line.to_s) if (@options.dec.casecmp?('binary'))
76
- }
77
- else;
78
- Cifra::binary(@options.algo.to_s) if (@options.enc.casecmp?('binary'))
79
- Decifra::binary(@options.algo.to_s) if (@options.dec.casecmp?('binary'))
80
- end
81
- elsif (@options.enc.casecmp?('cesar')) or (@options.dec.casecmp?('cesar'));
82
- dat = ARGV[0]
83
- if (File.exists?(@options.algo));
84
- IO.foreach(@options.algo){|line|
85
- line.chomp!
86
- CifraCesar::cesar(line.to_s, dat.to_i) if (@options.enc.casecmp?('cesar'))
87
- DecifraCesar::cesar(line.to_s, dat.to_i, -1) if (@options.dec.casecmp?('cesar'))
88
- }
89
- else;
90
- CifraCesar::cesar(@options.algo.to_s, dat.to_i) if (@options.enc.casecmp?('cesar'))
91
- DecifraCesar::cesar(@options.algo.to_s, dat.to_i, -1) if (@options.dec.casecmp?('cesar'))
37
+ else
38
+ if (@options.cipher.include?(@options.enc.capitalize))
39
+ CoBreak::Cifrado::cipher(@options.enc, @options.algo.to_s)
40
+ end
41
+ if (@options.cipher.include?(@options.dec.capitalize))
42
+ CoBreak::Decifrado::cipher(@options.dec,@options.algo.to_s)
43
+ end
92
44
  end
93
45
  end
94
46
  end
@@ -98,94 +50,25 @@ module CoBreak
98
50
  @options = $options
99
51
  @options.encrypt = "" if @options.encrypt.nil? == true
100
52
  @options.decrypt = "" if @options.decrypt.nil? == true
101
- if (@options.encrypt.casecmp?("md4")) or (@options.decrypt.casecmp?("md4"));
102
- if (File.exists?(@options.algo));
103
- IO.foreach(@options.algo){|line|
104
- line.chomp!
105
- EnCrypt::md4(line) if (@options.encrypt.casecmp?("md4"))
106
- DeCrypt::md4(line) if (@options.decrypt.casecmp?("md4"))
107
- }
108
- else
109
- EnCrypt::md4(@options.algo) if (@options.encrypt.casecmp?("md4"))
110
- DeCrypt::md4(@options.algo) if (@options.decrypt.casecmp?("md4"))
111
- end
112
- elsif (@options.encrypt.casecmp?("md5")) or (@options.decrypt.casecmp?("md5"));
113
- if (File.exists?(@options.algo));
114
- IO.foreach(@options.algo){|line|
115
- line.chomp!
116
- EnCrypt::md5(line) if (@options.encrypt.casecmp?("md5"))
117
- DeCrypt::md5(line) if (@options.decrypt.casecmp?("md5"))
118
- }
119
- else
120
- EnCrypt::md5(@options.algo) if (@options.encrypt.casecmp?("md5"))
121
- DeCrypt::md5(@options.algo) if (@options.decrypt.casecmp?("md5"))
122
- end
123
- elsif (@options.encrypt.casecmp?("sha1")) or (@options.decrypt.casecmp?("sha1"))
124
- if (File.exists?(@options.algo));
125
- IO.foreach(@options.algo){|line|
126
- line.chomp!
127
- EnCrypt::sha1(line) if (@options.encrypt.casecmp?("sha1"))
128
- DeCrypt::sha1(line) if (@options.decrypt.casecmp?("sha1"))
129
- }
130
- else
131
- EnCrypt::sha1(@options.algo) if (@options.encrypt.casecmp?("sha1"))
132
- DeCrypt::sha1(@options.algo) if (@options.decrypt.casecmp?("sha1"))
133
- end
134
- elsif (@options.encrypt.casecmp?("sha224")) or (@options.decrypt.casecmp?("sha224"));
135
- if (File.exists?(@options.algo));
136
- IO.foreach(@options.algo){|line|
137
- line.chomp!
138
- EnCrypt::sha224(line) if (@options.encrypt.casecmp?("sha224"))
139
- DeCrypt::sha224(line) if (@options.decrypt.casecmp?("sha224"))
140
- }
141
- else
142
- EnCrypt::sha224(@options.algo) if (@options.encrypt.casecmp?("sha224"))
143
- DeCrypt::sha224(@options.algo) if (@options.decrypt.casecmp?("sha224"))
144
- end
145
- elsif (@options.encrypt.casecmp?("sha256")) or (@options.decrypt.casecmp?("sha256"));
146
- if (File.exists?(@options.algo));
147
- IO.foreach(@options.algo){|line|
148
- line.chomp!
149
- EnCrypt::sha256(line) if (@options.encrypt.casecmp?("sha256"))
150
- DeCrypt::sha256(line) if (@options.decrypt.casecmp?("sha256"))
151
- }
152
- else
153
- EnCrypt::sha256(@options.algo) if (@options.encrypt.casecmp?("sha256"))
154
- DeCrypt::sha256(@options.algo) if (@options.decrypt.casecmp?("sha256"))
155
- end
156
- elsif (@options.encrypt.casecmp?("sha384")) or (@options.decrypt.casecmp?("sha384"));
157
- if (File.exists?(@options.algo));
158
- IO.foreach(@options.algo){|line|
159
- line.chomp!
160
- EnCrypt::sha384(line) if (@options.encrypt.casecmp?("sha384"))
161
- DeCrypt::sha384(line) if (@options.decrypt.casecmp?("sha384"))
162
- }
163
- else
164
- EnCrypt::sha384(@options.algo) if (@options.encrypt.casecmp?("sha384"))
165
- DeCrypt::sha384(@options.algo) if (@options.decrypt.casecmp?("sha384"))
166
- end
167
- elsif (@options.encrypt.casecmp?("sha512")) or (@options.decrypt.casecmp?("sha512"));
168
- if (File.exists?(@options.algo));
169
- IO.foreach(@options.algo){|line|
170
- line.chomp!
171
- EnCrypt::sha512(line) if (@options.encrypt.casecmp?("sha512"))
172
- DeCrypt::sha512(line) if (@options.decrypt.casecmp?("sha512"))
173
- }
174
- else
175
- EnCrypt::sha512(@options.algo) if (@options.encrypt.casecmp?("sha512"))
176
- DeCrypt::sha512(@options.algo) if (@options.decrypt.casecmp?("sha512"))
177
- end
178
- elsif (@options.encrypt.casecmp?("ripemd160")) or (@options.decrypt.casecmp?("ripemd160"));
53
+ show = OpenStruct.new
54
+ show.hash = %w[MD4 MD5 SHA1 SHA224 SHA256 SHA384 SHA512 RIPEMD160]
55
+ if (show.hash.include?(@options.encrypt.upcase)) or (show.hash.include?(@options.decrypt.upcase));
179
56
  if (File.exists?(@options.algo));
180
57
  IO.foreach(@options.algo){|line|
181
- line.chomp!
182
- EnCrypt::ripemd160(line) if (@options.encrypt.casecmp?("ripemd160"))
183
- DeCrypt::ripemd160(line) if (@options.decrypt.casecmp?("ripemd160"))
58
+ line.chomp!
59
+ EnCrypt::show(@options.encrypt, line) if (show.hash.include?(@options.encrypt.upcase))
60
+ DeCrypt::show(@options.decrypt, line) if (show.hash.include?(@options.decrypt.upcase))
184
61
  }
185
62
  else
186
- EnCrypt::ripemd160(@options.algo) if (@options.encrypt.casecmp?("ripemd160"))
187
- DeCrypt::ripemd160(@options.algo) if (@options.decrypt.casecmp?("ripemd160"))
63
+ if (show.hash.include?(@options.encrypt.upcase))
64
+ EnCrypt::show(@options.encrypt, @options.algo)
65
+ end
66
+ if (show.hash.include?(@options.decrypt.upcase))
67
+ DeCrypt::show(@options.decrypt, @options.algo)
68
+ end
188
69
  end
70
+ else
71
+ abort "\e[31m[\e[0m✘\e[31m]\e[0m Invalid Hash Format"
189
72
  end
190
73
  end
191
74
  end
@@ -2,31 +2,33 @@ require 'base64'
2
2
  require 'base32'
3
3
  require 'base16'
4
4
  require 'ascii85'
5
-
6
- class Decifrado
7
- attr_accessor :data
8
- def initialize(data = nil)
9
- @data = data
10
- end
11
- def base16(dato)
12
- bas16 = Base16.decode16(dato)
13
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{bas16}\e[0m"
14
- end
15
- def base32(dato)
16
- bas32 = Base32.decode(dato)
17
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{bas32}\e[0m"
18
- end
19
- def base64(dato)
20
- bas64 = Base64.decode64(dato)
21
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{bas64}"
22
- end
23
- def binary(dato)
24
- result = [dato].pack("B*")
25
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{result}"
26
- end
27
- def ascii85(dato)
28
- asci85 = Ascii85.decode(dato)
29
- puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m DecipherText: #{asci85}"
5
+ require 'cobreak/cesar'
6
+ require 'cobreak/binary'
7
+ module CoBreak
8
+ class Decifrado
9
+ def self.cipher(mode, dato)
10
+ decipher = OpenStruct.new
11
+ decipher.mode = mode
12
+ decipher.dato = dato
13
+ if (decipher.mode.eql?('base16'))
14
+ decipher.result = Base16.decode16(decipher.dato)
15
+ elsif (decipher.mode.eql?('base32'))
16
+ decipher.result = Base32.decode(decipher.dato)
17
+ elsif (decipher.mode.eql?('base64'))
18
+ decipher.result = Base64.decode64(decipher.dato)
19
+ elsif (decipher.mode.eql?('ascii85'))
20
+ decipher.result = Ascii85.decode(decipher.dato)
21
+ elsif (decipher.mode.eql?('cesar'))
22
+ decipher.result = Cesar.cesar(decipher.dato, ARGV[0].to_i, -1)
23
+ elsif (decipher.mode.eql?('binary'))
24
+ decipher.result = CoBreak::Binary.hexbinary(decipher.dato)
25
+ end
26
+ unless (decipher.result.nil?) or (decipher.result.eql?(decipher.dato))
27
+ puts "\n\e[1;32m[\e[0m+\e[1;32m]\e[0m Ciphertext: #{decipher.result}"
28
+ puts "\e[1;32m[\e[0m+\e[1;32m]\e[0m Number Rotations: #{ARGV[0]}" if (decipher.mode.eql?('cesar'))
29
+ else
30
+ puts "\e[1;31m[\e[0m+\e[1;31m]\e[0m Not Cipher Text..."
31
+ end
32
+ end
30
33
  end
31
34
  end
32
- Decifra = Decifrado.new