Skip to content

Commit d4618db

Browse files
authored
Merge pull request metafy-social#357 from theadeyemiolayinka/master
Chore: Add Caeser Cipher
2 parents 37a5e90 + 973bb36 commit d4618db

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

scripts/Caeser_Cipher_sage/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
## Caeser Cipher files ADDED #348
2+
3+
## Caeser Cipher
4+
Easilly Generate Caecer Cipher equivalent for any text
5+
6+
7+
## Installation
8+
- Clone the repo
9+
- download the requirements
10+
- run `python cc.py`

scripts/Caeser_Cipher_sage/cc.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# @author https://github.com/theadeyemiolayinka
2+
3+
from statistics import mode
4+
5+
6+
class Caesar():
7+
8+
def __init__(self):
9+
self.LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
10+
self.translated = ''
11+
12+
def __crypt(self, mode):
13+
for symbol in self.message.upper():
14+
if symbol in self.LETTERS:
15+
num = self.LETTERS.find(symbol)
16+
if mode == 'encrypt':
17+
num = num + self.key
18+
elif mode == 'decrypt':
19+
num = num - self.key
20+
21+
if num >= len(self.LETTERS):
22+
num = num - len(self.LETTERS)
23+
elif num < 0:
24+
num = num + len(self.LETTERS)
25+
26+
self.translated = self.translated + self.LETTERS[num]
27+
else:
28+
self.translated = self.translated + symbol
29+
30+
return self.translated
31+
32+
def encrypt(self, message, key=0):
33+
self.translated = ''
34+
self.key = key
35+
self.message = message
36+
return self.__crypt('encrypt')
37+
38+
def decrypt(self, message, key=0):
39+
self.translated = ''
40+
self.key = key
41+
self.message = message
42+
return self.__crypt('decrypt')
43+
44+
def invokeCipher(cipher, key, text, e_mode):
45+
if e_mode == 'E' or e_mode == 'e':
46+
print('\n====================RESULT====================')
47+
return cipher.encrypt(text, key)
48+
elif e_mode == 'D' or e_mode == 'd':
49+
print('\n====================RESULT====================')
50+
return cipher.decrypt(text, key)
51+
else:
52+
print('Ivalid mode.')
53+
n_mode = str(input("Enter mode: [E] for encryption and [D] for decryption:\n>"))
54+
return invokeCipher(cipher, key, text, n_mode)
55+
56+
cipher = Caesar()
57+
key = int(input('Enter encryption key:\n>'))
58+
text = str(input('Enter text:\n>'))
59+
e_mode = str(input("Enter mode: [E] for encryption and [D] for decryption:\n>"))
60+
61+
print(invokeCipher(cipher, key, text, e_mode))
62+
print('==============================================')

0 commit comments

Comments
 (0)