cobreak 0.0.3 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -20
- data/cobreak.gemspec +16 -11
- data/lib/cobreak/binary.rb +10 -0
- data/lib/cobreak/{Cesar.rb → cesar.rb} +5 -10
- data/lib/cobreak/cifrado.rb +28 -26
- data/lib/cobreak/cobreak.rb +30 -147
- data/lib/cobreak/decifrado.rb +28 -26
- data/lib/cobreak/decrypt.rb +36 -103
- data/lib/cobreak/encrypt.rb +28 -47
- data/lib/cobreak/force.rb +69 -189
- data/lib/cobreak/force_brute.rb +3 -31
- data/lib/cobreak/force_chars.rb +65 -0
- data/lib/cobreak/hash/hash.db +0 -29
- data/lib/cobreak/optionpr.rb +36 -9
- data/lib/cobreak/show/md4.db +0 -6
- data/lib/cobreak/show/md5.db +0 -14
- data/lib/cobreak/show/ripemd160.db +0 -1
- data/lib/cobreak/show/sha1.db +0 -3
- data/lib/cobreak/show/sha224.db +0 -1
- data/lib/cobreak/show/sha256.db +0 -1
- data/lib/cobreak/show/sha384.db +0 -1
- data/lib/cobreak/show/sha512.db +0 -1
- data/lib/cobreak/version.rb +1 -1
- metadata +65 -10
- data/dicc.txt +0 -1
- data/hola.txt +0 -1397760
- data/prueba.txt +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ba7b5f95bbe02154240d40486b32a78907bf9ceac8f34b0e2a553210c5dd553
|
4
|
+
data.tar.gz: d3ac3aec002c8ab20acef7a2d1bae39ec2343cc60eff7fc620e504071143c248
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
35
|
-
|
36
|
-
|
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
|
-
> $ **
|
38
|
+
> $ **gem 'cobreak'**
|
51
39
|
|
52
|
-
###
|
40
|
+
###and then execute:
|
53
41
|
|
54
|
-
> $ **
|
42
|
+
> $ **bundle**
|
55
43
|
|
56
|
-
|
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 |
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
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
|
@@ -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
|
29
|
-
print cad_rot
|
25
|
+
cesar.cad_rot << alfabeto[new_pos]
|
30
26
|
end
|
31
|
-
|
27
|
+
return cesar.cad_rot.join('')
|
32
28
|
end
|
33
29
|
end
|
34
|
-
|
35
|
-
DecifraCesar = CesarCifrado.new
|
30
|
+
Cesar = CesarCifrado.new
|
data/lib/cobreak/cifrado.rb
CHANGED
@@ -2,31 +2,33 @@ require 'base64'
|
|
2
2
|
require 'base32'
|
3
3
|
require 'base16'
|
4
4
|
require 'ascii85'
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
data/lib/cobreak/cobreak.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
-
|
102
|
-
|
103
|
-
|
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
|
-
|
182
|
-
|
183
|
-
|
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
|
-
|
187
|
-
|
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
|
data/lib/cobreak/decifrado.rb
CHANGED
@@ -2,31 +2,33 @@ require 'base64'
|
|
2
2
|
require 'base32'
|
3
3
|
require 'base16'
|
4
4
|
require 'ascii85'
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|