36 lines
744 B
Plaintext
36 lines
744 B
Plaintext
def caesar_encode(plaintext, shift)
|
|
uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
lowercase = "abcdefghijklmnopqrstuvwxyz"
|
|
|
|
cipher = ""
|
|
for char in plaintext
|
|
if char in uppercase
|
|
cipher += uppercase[uppercase[char] - (26 - shift)]
|
|
else if char in lowercase
|
|
cipher += lowercase[lowercase[char] - (26 - shift)]
|
|
else
|
|
cipher += char
|
|
end
|
|
end
|
|
|
|
return cipher
|
|
end
|
|
|
|
def caesar_decode(cipher, shift)
|
|
uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
lowercase = "abcdefghijklmnopqrstuvwxyz"
|
|
|
|
plaintext = ""
|
|
for char in cipher
|
|
if char in uppercase
|
|
plaintext += uppercase[uppercase[char] - shift]
|
|
else if char in lowercase
|
|
plaintext += lowercase[lowercase[char] - shift]
|
|
else
|
|
plaintext += char
|
|
end
|
|
end
|
|
|
|
return plaintext
|
|
end
|