c7decrypt 0.1.6 → 0.1.7
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.
- data/lib/c7decrypt.rb +37 -15
- metadata +6 -3
data/lib/c7decrypt.rb
CHANGED
@@ -27,29 +27,51 @@ class C7Decrypt
|
|
27
27
|
# The Decryption Method for Cisco Type-7 Encrypted Strings
|
28
28
|
# @param [String] the Cisco Type-7 Encrypted String
|
29
29
|
# @return [String] the Decrypted String
|
30
|
-
def decrypt(
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
def decrypt(e_text)
|
31
|
+
d_text = ""
|
32
|
+
seed = nil
|
33
|
+
|
34
|
+
e_text.scan(/../).each_with_index do |char,i|
|
35
|
+
if i == 0
|
36
|
+
seed = char.to_i - 1
|
37
|
+
else
|
38
|
+
d_text += decrypt_char(char, i, seed)
|
39
|
+
end
|
36
40
|
end
|
37
|
-
|
41
|
+
|
42
|
+
return d_text
|
38
43
|
end
|
39
44
|
|
40
45
|
# The Encryption Method for Cisco Type-7 Encrypted Strings
|
41
46
|
# @param [String] the plaintext password
|
42
47
|
# @param [String] the seed for the encryption used
|
43
48
|
# @return [String] the encrypted password
|
44
|
-
def encrypt(
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
tmp = char.unpack('C')[0] ^ VT_TABLE[((i + seed) % 53)]
|
50
|
-
etext += ("%02X" % tmp)
|
49
|
+
def encrypt(d_text, seed = 2)
|
50
|
+
e_text = sprintf("%02d", seed)
|
51
|
+
|
52
|
+
d_text.each_char.each_with_index do |d_char,i|
|
53
|
+
e_text += encrypt_char(d_char, i, seed)
|
51
54
|
end
|
52
|
-
|
55
|
+
|
56
|
+
return e_text
|
57
|
+
end
|
58
|
+
|
59
|
+
# The method for encrypting a single character
|
60
|
+
# @param [String] the plain text char
|
61
|
+
# @param [Integer] the index of the char in plaintext string
|
62
|
+
# @param [Integer] the seed used in the encryption process
|
63
|
+
# @return [String] the string of the encrypted char
|
64
|
+
def encrypt_char(char, i, seed)
|
65
|
+
sprintf("%02X", char.unpack('C')[0] ^ VT_TABLE[(i + seed) % 53])
|
66
|
+
end
|
67
|
+
|
68
|
+
# The method for decrypting a single character
|
69
|
+
# @param [String] the encrypted char
|
70
|
+
# @param [Integer] the index of the char pair in encrypted string
|
71
|
+
# @param [Integer] the seed used in the decryption process
|
72
|
+
# @return [String] the string of the decrypted char
|
73
|
+
def decrypt_char(char, i, seed)
|
74
|
+
(char.hex^VT_TABLE[(i + seed) % 53]).chr
|
53
75
|
end
|
54
76
|
|
55
77
|
# A helper method to decrypt an arracy of Cisco Type-7 Encrypted Strings
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: c7decrypt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.7
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jonathan Claudius
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-02-05 00:00:00 Z
|
14
14
|
dependencies: []
|
15
15
|
|
16
16
|
description: A library for decoding Cisco Type 7 passwords
|
@@ -36,6 +36,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
+
hash: -365620009767347237
|
40
|
+
segments:
|
41
|
+
- 0
|
39
42
|
version: "0"
|
40
43
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
41
44
|
none: false
|
@@ -46,7 +49,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
46
49
|
requirements: []
|
47
50
|
|
48
51
|
rubyforge_project:
|
49
|
-
rubygems_version: 1.8.
|
52
|
+
rubygems_version: 1.8.25
|
50
53
|
signing_key:
|
51
54
|
specification_version: 3
|
52
55
|
summary: Ruby based Cisco Type 7 Password Decryptor
|