Найти тему
Stepan.Burmistrov

Шифр Цезаря и Python 📚

Оглавление

🕵‍♂ Шифр Цезаря: древний метод шифрования, при котором каждая буква в тексте заменяется буквой, смещённой на фиксированное число позиций по алфавиту.

🔄 Как работает смещение?

'A' станет 'D' при смещении на 3

'B' станет 'E' при смещении на 3

'Z' станет 'C' при смещении на 3
Для простоты понимание ограничимся символами латинского алфавита и цифрами!

🚀 Исследуем Python-код! 🐍

1. Шифрование (cesar):

def cesar(a, b):
a = int(a) # Преобразование символа в его ASCII код
if 32 <= a <= 122: # Проверка принадлежности символа к диапазону ASCII [32, 122]
res = a + b # Смещение
if res > 122: # Коррекция при выходе за границы диапазона
res = 32 + (res - 122) - 1
return res # Возвращаем новый ASCII код
else:
return None # Для символов вне диапазона [32, 122] ASCII

2. Дешифрование (uncesar):

def uncesar(a, b):
a = int(a)
if 32 <= a <= 122:
res = a - b # Обратное смещение
if res < 32: # Коррекция при выходе за границы диапазона
res = 122 - (32 - res) + 1
return res
else:
return None

🌟 Практика:

st = input("Введите строку:")
key = int(input("Введите ключ:"))
result = ""
for i in range(len(st)):
sym = chr(cesar(ord(st[i]), key))
result += sym
print(result)

final_result = ""
for i in range(len(result)):
sym = chr(uncesar(ord(result[i]), key))
final_result += sym
print(final_result)

🎓 Заключение:

🔑 Ключ шифра Цезаря - количество позиций смещения. Зная ключ, мы можем легко расшифровать текст, что делает шифр Цезаря ненадежным для серьезной защиты информации. Однако он отлично подходит для обучения основам криптографии и программирования на Python! 🎉

Наука
7 млн интересуются