-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDecoder.py
29 lines (20 loc) · 837 Bytes
/
Decoder.py
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
def key_indexer(key_index, key_length):
return 0 if key_index == (key_length - 1) else key_index + 1
def main():
text = input("Encrypted text: ").lower()
key = input("\nEncryption key: ").lower()
decoded_text, key_index = ("", 0)
if len(text) == 0:
print("\nEmpty text!")
return
for i in range(len(text)):
if ord(text[i]) == 32:
decoded_text += chr(32)
continue
decoded_letter_index = (ord(text[i]) - 96) - (ord(key[key_index]) - 96)
decoded_letter_index = 26 if decoded_letter_index == 0 else decoded_letter_index + 26
decoded_text += chr(decoded_letter_index + 96)
key_index = key_indexer(key_index, len(key))
print(f"\nDecrypted text: {decoded_text}")
if __name__ == '__main__':
main()