-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcrypter.rb
52 lines (43 loc) · 1.3 KB
/
crypter.rb
1
2
3
4
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class Encryptor
def cipher
{'a' => 'n', 'b' => 'o', 'c' => 'p', 'd' => 'q',
'e' => 'r', 'f' => 's', 'g' => 't', 'h' => 'u',
'i' => 'v', 'j' => 'w', 'k' => 'x', 'l' => 'y',
'm' => 'z', 'n' => 'a', 'o' => 'b', 'p' => 'c',
'q' => 'd', 'r' => 'e', 's' => 'f', 't' => 'g',
'u' => 'h', 'v' => 'i', 'w' => 'j', 'x' => 'k',
'y' => 'l', 'z' => 'm'}
end
def decipher
{'n' => 'a', 'o' => 'b', 'p' => 'c', 'q' => 'd',
'r' => 'e', 's' => 'f', 't' => 'g', 'u' => 'h',
'v' => 'i', 'w' => 'j', 'x' => 'k', 'y' => 'l',
'z' => 'm', 'a' => 'n', 'b' => 'o', 'c' => 'p',
'd' => 'q', 'e' => 'r', 'f' => 's', 'g' => 't',
'h' => 'u', 'i' => 'v', 'j' => 'w', 'k' => 'x',
'l' => 'y', 'm' => 'z'}
end
def encrypt(string)
#Cut string input into letters
letters = string.downcase.split("")
#Encryp letters one at a time, gathering results
results = []
letters.each do |letter|
encrypted_letter = cipher[letter]
results.push(encrypted_letter)
end
#join results
results.join
end
def decrypt(string)
letters = string.downcase.split("")
results = []
letters.each do |letter|
encrypted_letter = decipher[letter]
results.push(encrypted_letter)
end
end
end
secret = Encryptor.new
#puts secret.encrypt('DOG')
puts secret.decrypt('QBT')