-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGronsfeld.py
53 lines (41 loc) · 2 KB
/
Gronsfeld.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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"""
@senko
Programmed by Adam Yusenko
* 2021-09-20 Initial programming
"""
alphabet_ua = u"АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ"
def work(message, k, op):
k *= len(message) // len(k) + 1
message = message.upper()
return ''.join([alphabet_ua[alphabet_ua.index(j) + int(k[i]) * op] for i, j in enumerate(message)])
def encrypt(message, key):
return work(message, key, 1)
def decrypt(message, key):
return work(message, key, -1)
def main():
print("Шифр Гронсфельда")
var = input("Якщо шифруємо то введіть C якщо розшифровуємо то введіть D \n")
if var == 'C':
message = str(input("Шифруємо слово: "))
print("Введіть ключ для шифру Гронсфельда з 5 цифр: ")
k = [(input("k = ")) for i in range(5)]
encrypted_message = encrypt(message, k)
print("Початок шифрування: " + message)
print("Зашифроване повідомлення: " + encrypted_message)
elif var == 'D':
message = str(input("Розшифруємо слово: "))
print("Введіть ключ для шифру Гронсфельда з 5 цифр: ")
k = [(input("k = ")) for i in range(5)]
decrypted_message = decrypt(message, k)
print("Початок шифрування: " + message)
print("Розшифроване повідомлення: " + decrypted_message)
else:
message = "BRUHH BAD INPUT"
keyword = "MISFORTUNE"
k = [1, 2, 3, 4, 5]
print("Початок шифрування: " + message)
encrypted_message = encrypt(message, k)
decrypted_message = decrypt(encrypted_message, k)
print("Зашифроване повідомлення: " + encrypted_message)
print("Розшифроване повідомлення: " + decrypted_message)
main()