Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Шифр Цезаря - древний и широко используемый шифр, который легко зашифровать и расшифровать. Он работает, сдвигая буквы алфавита, чтобы создать совершенно новый алфавит (ABCDEF может сдвинуть более 4 букв и станет EFGHIJ).
Шифры Цезаря - не самые безопасные шифры, но они хороши для небольших задач, таких как передача секретных заметок или усиление паролей. Расшифровать код действительно легко, но зашифровать его может быть утомительно, если вы не запомнили специальный алфавит.
Чтобы упростить этот процесс, мы можем использовать мощность компьютеров, а точнее язык программирования Python.
Эта инструкция покажет вам, как создать программу, преобразующую сообщения в шифр по вашей команде.
Запасы
Все, что вам нужно, это интерпретатор Python: IDLE, Pycharm и Thonny - несколько хороших бесплатных вариантов (я использовал Pycharm).
Базовые знания Python
Шаг 1. Объявление переменных и получение входных данных
Чтобы фактически сохранить строковые (текстовые) значения алфавита, сообщения, сдвига и т. Д., Нам нужно использовать переменные. Начнем с объявления переменных «алфавит», «partialOne», «partialTwo» и «newAlphabet». Я написал имена переменных в Camel Case в моем коде (первое слово в нижнем регистре, а второе в верхнем регистре), но вы можете написать его как хотите, если вы не забудете изменить его и в остальной части кода.. Переменная алфавита имеет значение «abcdefghijklmnopqrstuvwxyz». Все остальные переменные установлены в "", что является пустой строкой, поскольку у нас еще нет их значений.
При этом настраивается Частичная система, которую мы используем для фактического создания сдвига. Это будет объяснено позже.
После этого мы должны получить сообщение и значение сдвига от пользователя. Для этого мы используем функцию ввода. Эта часть кода запрашивает у пользователя сообщение и номер, на который нужно сдвинуть алфавит.
КОД:
алфавит = "abcdefghijklmnopqrstuvwxyz"
partialOne = ""
partialTwo = ""
newAlphabet = ""
message = input ("Пожалуйста, введите сообщение, которое вы хотите перевести:").lower ()
key = int (input ("Пожалуйста, введите число, на которое вы хотите перейти:"))
Шаг 2: Создание нового алфавита
Теперь создадим сдвинутый алфавит. Для этого воспользуемся частичной системой. Частичная система - это когда компьютер разбивает алфавит на две части (причудливый способ произнести части). Длина первого фрагмента зависит от того, какой длины вы указали программе, а второй - остаток. Компьютер переключает партиалы. Это именно то, что делает код вместе с первым оператором, который говорит, что если сдвиг равен 0, новый алфавит и старый алфавит одинаковы, поскольку вы ничего не переключаете.
Например:
Последовательность - 123456789
Частичный - 123; Частично два - 456789
Новая последовательность - 456789123
КОД:
если ключ == 0:
newAlphabet = алфавит
ключ elif> 0:
partialOne = алфавит [: ключ]
partialTwo = алфавит [ключ:]
newAlphabet = partialTwo + partialOne
еще:
partialOne = алфавит [:(26 + клавиша)]
partialTwo = алфавит [(26 + клавиша):]
newAlphabet = partialTwo + partialOne
Шаг 3: перенос сообщения
Теперь у нас есть алфавит и новый алфавит. Осталось только переключить сообщение в код.
Сначала мы устанавливаем новую переменную, называем ее «зашифрованной» и устанавливаем ее в «». Затем мы пишем действительно сложный цикл for, который проверяет каждую букву в сообщении и переключает его на новую букву. Он выводит результат, и вот он, успешно преобразованный код!
КОД:
encrypted = "" для message_index в диапазоне (0, len (сообщение)):
если сообщение [message_index] == "":
зашифрованный + = ""
для алфавита_индекс в диапазоне (0, len (newAlphabet)):
если сообщение [message_index] == алфавит [алфавит_индекс]:
encrypted + = newAlphabet [алфавит_индекс]
печать (зашифрованный)
Шаг 4: Дополнительно
Прилагается файл кода.