🕵♂ Шифр Цезаря: древний метод шифрования, при котором каждая буква в тексте заменяется буквой, смещённой на фиксированное число позиций по алфавиту.
🔄 Как работает смещение?
'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! 🎉