/
ku11ch
/
Lab_5
Обзор
Документация
Войти
/
ku11ch
/
Lab_5
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
caesar.py
62 строки
2 KB
ku11ch
upload files
25 ноя 2025, 17:07
25 ноя 2025, 17:07
fe7c66c
Код
Авторство
О чём код?
# atbash.py def atbash_cipher(text): """Шифр Атбаш.""" result = "" for char in text: if 'A' <= char <= 'Z': result += chr(ord('A') + ord('Z') - ord(char)) elif 'a' <= char <= 'z': result += chr(ord('a') + ord('z') - ord(char)) else: result += char return result def caesar_cipher(text, key, mode='encrypt'): """Шифр Цезаря.""" result = "" if mode == 'decrypt': key = -key key = key % 26 for char in text: if 'A' <= char <= 'Z': start = ord('A') result += chr((ord(char) - start + key) % 26 + start) elif 'a' <= char <= 'z': start = ord('a') result += chr((ord(char) - start + key) % 26 + start) else: result += char return result # --- Тестовые данные --- test_message = "The Quick Brown Fox Jumps Over The Lazy Dog 123" key_k = 7 print("Исходное сообщение:", test_message) # --- Тест: шифр Цезаря --- encrypted_caesar = caesar_cipher(test_message, key_k, 'encrypt') print("\nЦезарь зашифровано:", encrypted_caesar) decrypted_caesar = caesar_cipher(encrypted_caesar, key_k, 'decrypt') print("Цезарь дешифровано:", decrypted_caesar) # --- Тест: шифр Атбаш --- encrypted_atbash = atbash_cipher(test_message) print("\nАтбаш зашифровано:", encrypted_atbash) decrypted_atbash = atbash_cipher(encrypted_atbash) print("Атбаш дешифровано:", decrypted_atbash) # Проверки assert decrypted_caesar == test_message assert decrypted_atbash == test_message print("\nВсе тесты успешно пройдены!")