Шифрование Виженера

Курсовая работа - (MVC) веб-приложение на основе стека технологий ASP.NET для шифрования и дешифрования текста с помощью шифра Виженера. Решение содержит проект с автоматическими юнит-тестами для проверки работы системы шифрования (Encoder) и контроллера (HomeController).

Основные элементы программы:

  1. Перечисление EncodingLanguage - язык шифрования/дешифрования.
  2. Класс Encoder содержит в себе всю логику шифрования. Конструктор принимает ключ (строка, по умолчанию - "скорпион") и язык шифрования/дешифрования (EncodingLanguage, по умолчанию - русский). Для работы предоставляет два метода: string Encode(string text) и string Decode(string text), отвечающие за шифрование и дешифрование текста соответственно.
  3. Класс EncodingOperation - основная модель программы, содержит информацию об одной операции шифрования/дешифрования.
  4. Представление Main.cshtml - представление основной страницы приложения, отвечающее за отображение операций шифрования/дешифрования и позволяющее вводить данные для новых операций.
  5. Класс HomeController - контроллер, работающий с моделью EncodingOperation и представлением Main.cshtml. Также содержит метод DownloadFile, отвечающий за скачивание файла с результатом шифровки/дешифровки тескта.
  6. Абстрактный класс FileReader, наследники которого отвечают за чтение файлов определенного типа. Содержит статический метод GetFileReader, возвращающий экземпляр настледника для чтения определенного формата файлов, и абстрактный метод string Read(). По умолчанию в программе есть TxtFileReader и DocxFileReader, отвечающие за чтение .txt и .docx файлов соответственно. В дальнейшем можно добавлять новые классы-наследники для чтения других файлов.

Функционал:

  1. Программа позволяет выбрать язык шифруемого текста (русский или английский, также учтена возможность добавления других языков в дальнейшем) (по умолчанию - русский).
  2. Программа позволяет выбрать режим работы: шифрование или дешифрование (по умолчанию - шифрование).
  3. Программа предоставляет возможность ввода ключа шифрования на выбранном языке (длиной не более 20 знаков).
  4. Программа позволяет ввести текст для шифрования/дешифрования (не более 1000 символов) или загрузить файл с текстом в формате .txt или .docx. После загрузки содержимое файла отображается в поле ввода, текст можно редактировать. Символы, не относящиеся к алфавиту выбранного языка, будут оставлены без изменений.
  5. Программа выводит результат шифрования/дешифрования в отдельное поле. Результат работы программы можно скачать в виде текстового файла в формате .docx (название и директорию сохранения можно выбрать, если в настройках браузера установить флаг "Спрашивать, что делать с загружаемым файлом", после чего нажать на кнопку "Сохранить файл как").

Выполнил Алексеев Антон

P.S. Который, к слову, очень хочет попасть на стажировку))