Програма яка шифрує та розшифрує текс за допомогою шифру Цезаря
Ответы
Вы можете добавлять или убирать алфавиты. Например, можно создать свой алфавит, в котором будут какие-то символы или свой особый порядок букв. Это будет сложнее дешифровать тем, у кого нет этого скрипта!
Вы можете сравнить результат программы в онлайн-шифровщиках Цезаря.
ru_alphabet_capital_case = 'АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
ru_alphabet_lower_case = ru_alphabet_capital_case.lower()
en_alphabet_capital_case = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
en_alphabet_lower_case = en_alphabet_capital_case.lower()
# Все алфавиты для удобного поиска
alphabets = [
ru_alphabet_lower_case,
ru_alphabet_capital_case,
en_alphabet_lower_case,
en_alphabet_capital_case
]
def encrypt(text: str, offset: int):
result = ''
for letter in text:
for alphabet in alphabets:
if letter in alphabet:
pos = alphabet.index(letter)
new_pos = (pos + offset) % len(alphabet)
letter = alphabet[new_pos]
break
result += letter
return result
def decrypt(text: str, offset: int):
result = ''
for letter in text:
for alphabet in alphabets:
if letter in alphabet:
pos = alphabet.index(letter)
new_pos = (pos - offset) % len(alphabet)
letter = alphabet[new_pos]
break
result += letter
return result
# тест
test_text = encrypt('Привет, мир! Hello, world!', 17)
print(test_text)
test_text = decrypt(test_text, 17)
print(test_text)