Шифр Цезаря¶
Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите. Например, в шифре со сдвигом вправо на 3, A была бы заменена на D, B станет E, и так далее.
Для кодирования одного символа используется формула:
Здесь:
encoded_symbol — код зашифрованного символа
symbol — код исходного символа
key — ключ шифрования
first — код первого символа алфавита
last — код последнего символа алфавита.
Для преобразования символа в код и обратно используются функции:
-
ord(c)¶ Возвращает код символа
с.
-
chr(i)¶ Возвращает символ, соответствующий коду
i.
Задание¶
Каждая задача — отдельный этап реализации приложения для шифрования.
Реализуйте функцию
encode_symbol. Функция принимает символ и число, на которое его нужно сдвинуть. Функция шифрует только символы латинского алфавита, все прочие оставляет без изменений.Реализуйте функцию
encode_str. Функция принимает строку и ключ шифрования и возвращает зашифрованную строку.Реализуйте функцию
encode_file(input_file_path, output_file_path, key).Реализуйте для приложения графический интерфейс с помощью
easygui. Для открытия шифруемого файла используйте функциюeasygui.fileopenbox(msg=None, title=None). Для сохранения зашифрованного файла используйтеeasygui.filesavebox(msg=None, title=None). Для ввода ключа —easygui.integerbox(msg="", title=" ").