Предмет: Информатика, автор: kostikpubg

Програма яка шифрує та розшифрує текс за допомогою шифру Цезаря

Ответы

Автор ответа: betman134
0

Вы можете добавлять или убирать алфавиты. Например, можно создать свой алфавит, в котором будут какие-то символы или свой особый порядок букв. Это будет сложнее дешифровать тем, у кого нет этого скрипта!

Вы можете сравнить результат программы в онлайн-шифровщиках Цезаря.


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)

Приложения:
Похожие вопросы
Предмет: Математика, автор: Zzzeyn