Python шифр цезаря

Шифр Цезаря (также известный как шифр сдвига) - это простой вид шифрования, в котором каждая буква в сообщении сдвигается на определенное количество позиций в алфавите. В Python можно реализовать шифр Цезаря с помощью нескольких строк кода.

Прежде чем приступить к реализации кода, давайте разберемся с самим алгоритмом шифрования Цезаря. Предположим, что у нас есть сообщение, которое мы хотим зашифровать. Мы выбираем ключ - число, на которое будут сдвигаться буквы в алфавите. Например, при сдвиге на 3 буква "a" будет заменяться на "d", "b" на "e" и так далее. Если ключ больше, чем количество букв в алфавите, мы можем вернуться в начало алфавита и продолжить сдвиг сначала.

Начнем с реализации функции, которая будет шифровать сообщение. Эта функция будет иметь два аргумента: само сообщение и ключ шифрования.


def caesar_cipher_encrypt(message, key):
    encrypted_message = ""
    for char in message:
        if char.isalpha():
            if char.isupper():
                encrypted_char = chr((ord(char) - 65 + key) % 26 + 65)
            else:
                encrypted_char = chr((ord(char) - 97 + key) % 26 + 97)
            encrypted_message += encrypted_char
        else:
            encrypted_message += char
    return encrypted_message

В этой функции мы используем цикл for, чтобы пройти по каждому символу в сообщении. Затем мы проверяем, является ли символ буквой с помощью метода isalpha(). Если символ - буква верхнего регистра, мы используем выражение (ord(char) - 65 + key) % 26 + 65 для вычисления нового символа. Здесь ord(char) возвращает числовое значение символа, вычитаем 65 для возврата значения от 0 до 25, прибавляем ключ и берем остаток от деления на 26, а затем снова прибавляем 65, чтобы вернуться к коду символа буквы верхнего регистра в алфавите ASCII. Аналогично для символов нижнего регистра.

Для дешифрования сообщения мы можем использовать обратный ключ или сделать его отрицательным. Но мы также можем просто изменить знак ключа на противоположный и повторно вызвать функцию шифрования.

Вот пример кода, показывающий использование функции шифрования:


message = "Привет, мир!"
key = 3

encrypted_message = caesar_cipher_encrypt(message, key)
print("Зашифрованное сообщение:", encrypted_message)

decrypted_message = caesar_cipher_encrypt(encrypted_message, -key)
print("Расшифрованное сообщение:", decrypted_message)

В этом примере мы задаем переменные message и key для того, чтобы закодировать сообщение "Привет, мир!" с ключом 3. Затем мы вызываем функцию caesar_cipher_encrypt() с этими аргументами и сохраняем результат в переменной encrypted_message. Это зашифрованное сообщение затем выводится на экран.

Затем мы повторно вызываем функцию caesar_cipher_encrypt(), передавая зашифрованное сообщение и ключ с обратным знаком (для дешифрования), и выводим результат расшифрованного сообщения.

Вышеприведенный код выведет следующий результат:

Зашифрованное сообщение: Ухлдш, плу!
Расшифрованное сообщение: Привет, мир!

Таким образом, мы успешно реализовали шифр Цезаря в Python и выполнить шифрование и дешифрование сообщений с помощью функции caesar_cipher_encrypt().

Похожие вопросы на: "python шифр цезаря "

Все марки автомобилей
Overflow Hidden: управление размером блоков и контента
TFTPD64 - Бесплатная TFTP-серверная программа для Windows
Таймер Стоп
Ввод данных в Python с помощью функции input()
Err blocked by CSP: причины возникновения и методы решения
Callable - Ключевые аспекты и применение
Как изменить шрифт в HTML
Python to Exe: превратите свой код в исполняемые файлы
Comparator - сравнение товаров и услуг