Оглавление:

Программа Caesar Cipher на Python: 4 шага
Программа Caesar Cipher на Python: 4 шага

Видео: Программа Caesar Cipher на Python: 4 шага

Видео: Программа Caesar Cipher на Python: 4 шага
Видео: Шифр цезаря на python 2024, Ноябрь
Anonim
Программа шифрования Цезаря на Python
Программа шифрования Цезаря на Python

Шифр Цезаря - древний и широко используемый шифр, который легко зашифровать и расшифровать. Он работает, сдвигая буквы алфавита, чтобы создать совершенно новый алфавит (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: Дополнительно

Дополнительный
Дополнительный
Дополнительный
Дополнительный

Прилагается файл кода.

Рекомендуемые: