Реализовать класс архивирования и разархивирования зашифрованного файла(ов) с использованием zip-архиватора
Класс должен:
чтение конфигурационного файла для разархивирования
архивирование файлов либо директории с использованием пароля с шифрованием имен
разархивирование файла с использованием пароля в указанное место
получать информацию о пароле из файла
удаление файлов либо директории
осуществлять валидацию полученных данных (по хэшу файлов в директории, содержащихся в одном из файлов из архива)
осуществлять подсчет хэшей файлов в директории с сохранением в отдельный файл
генерировать конфигурационный файл, содержащий следующие поля:
путь к файлу с хэшеми
путь к файлу с паролем
путь к файлу с текстом
url
перезапись конфигурационного файла новым из архива
шифрование по ключу(паролю) (например XOR) старого файла с паролем
разархивирование файла с паролем по ключу (паролю), содержащемуся в конфигурационном файле
Реализовать с использованием класса, содержащего методы для требований, указанных выше.
Информация, необходимая для работы, храниться в json/xml/yaml файле
В механизме реализовать генерацию исключений, возникающих при неудачной работе приложения
Написать тестовую программу, реализующую функции данного класса
Документально описать класс и реализованные в нем методы