Модуль шифрования
БЕЗ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА
формулировка
Реализуйте функцию сохранения зашифрованных сообщений
Создайте модуль Python, в котором будет две функции - encrypt и decrypt. Функция encrypt должна получать на вход текстовое сообщение, шифруя его с помощью кода Цезаря (сдвиг вправо на заданное число символов).
Функция decrypt должна получать на вход текстовое сообщение, дешифруя его с помощью кода Цезаря (сдвиг влево на заданное число символов).
Проверьте работу программы, реализовав в том же модуле Python тестирующий алгоритм, который осуществляет вызовы функций с разными сообщениями и сохраняет результаты в файлы, согласно спецификации ниже.
Методические указания
Размер сдвига определяется остатком от деления Вашего студенческого ID на 11. То есть, например, для ID 70201103 сдвиг равен 70201103 % 11, то есть 5.
Студенческий ID должен при вызове обеих функций передаваться в них как параметр по умолчанию с ключом sid. То есть функцию можно вызвать так:
encrypt("сообщение")
или так:
encrypt(сообщение, sid= 70201103)
Варианты вызовов берутся из файлов encrypt.txt и decrypt.txt. Результаты пишутся в файлы encrypt_result.txt и decrypt_result.txt. Содержимое файлов с результатами так же дублируется как распечатки в консоль.
Ожидаемые результаты
При вызове модуля напрямую – распечатки результатов в файлах encrypt_result.txt и decrypt_result.txt. Результаты должны соответствовать содержмиому файлов encrypt.txt и decrypt.txt и ID студента согласно спецификации.
При импорте модуля - отсутствие распечаток тестов и соответствие результатов проверочных вызовов функций спецификации.
Интерфейс для модуля шифрования
С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)
формулировка
Необходимо реализовать оконное приложение, которое позволит обычным пользователям пользоваться работой шифровального модуля.
Методические указания
Необходимо реализовать оконное приложение на tkinter.
Программу сохранить под именем app.py
3.2.3. Задание № 3
Разработка веб-сервиса
WEB-ИНТЕРФЕЙС
формулировка
Создайте сервер на flask, который при запуске будет открывать Web-сервер по стандартному для flask адресу 127.0.0.1:5000
Сервер обеспечивает Web-интерфейс к модулю шифрования, одновременно поддерживая логирование запросов.
Методические указания
Сервер должен поддерживать следующий функционал:
– GET-запрос по адресу с учётом Вашего ID, например 127.0.0.1:5000/70201103. По этому запросу должна открываться HTML-форма для ввода и сохранения сообщений из приведённого ниже шаблона:
Процедура проверки
Проверяющий запускает сервер, начинает с запроса на reset, после чего заходит на адрес по ID студента. Отправляет несколько сообщений, проверяет созданный csv-файл messages.csv, проверяет json-выгрузку.
Выходные данные
Сервер работает, создавая и модифицируя содержимое messages.csv в зависимости от спецификации.
3.2.4. Задание № 4
Приложение для управления контентом
С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)
формулировка
Сделать приложение, которое будет управлять содержимым csv-файла на сервере.
Методические указания
Сделайте улучшение приложения из задания 2.
Приложение должно требовать от пользователя в диалоге выбрать файл имеено формата *.csv, и давать ошибку при попытке загрузки файла другого типа.
Если csv-файл отсутствует, его можно создать из приложения, так же как текстовый файл в задании 2.
В окне вывода расшифрованной информации нужно выводить не просто тексты, а табличку из 4 колонок, заполняемую данными из csv-файла (то есть колонки id, время выгрузки, ip-адрес и расшифрованный текст).
Добавление новой строки в приложении оформляется как полноценный пост на сервере, то есть добавляет новую строку с новым id и с отметкой текущего времени. В качестве ip-адреса указывается слово admin.
При наведении мышки на ряд в таблице, слева от ряда возникают 2 стрелочки - вверх и вниз, и крестик. При нажатии стрелочки вверх запись движется в таблице вверху, при нажатии стрелочки вниз – вниз. При нажатии крестика сообщение удаляется.
Если сообщение уже первое или последнее в списке, то соответствующая стрелочка должна быть неактивна. При наведении мышки на другой ряд, стрелочки и крестик переключаются на новый ряд.
Приложение опирается на cypher.py при расшифровке сообщений из csv-файла и в процессе зашифровки сообщений при сохранении csv-файла.
Изменения, вносимые в messages.csv в приложении, тут же отражаются на сервере и наоборот.
Программу сохранить под именем admin.py
Процедура проверки
Проверяющий запускает сервер и административное приложение. Загружает в приложение используемый сервером файл messages.csv. Выполняет команды добавления и удаления строк в приложении, проверяет правильность форматов данных в окне приложения, в файле messages.csv, а так же правильность выгрузок с сервера.
Ожидаемый результат
Работа интерфейса admin.py согласно спецификации. Бесшовная интеграция админки и сервера.