- •Курсовий проект (робота)
- •Содержание
- •Общие сведения о стеганографии
- •1.1 Основные понятия и определения стеганографии
- •Сокрытие данных
- •1.3 Обзор методов стеганографии
- •1.3.1 Метод последнего бита
- •1.3.2 Метод дискретно косинусного преобразования
- •2.1 Выбор языка программирования
- •2 Проектирование
- •2.2 Выбор среды разработки
- •2.3 Выбор программного обеспечения промежуточного уровня
- •2.4 Выбор интерфейса
- •3 Разработка
- •3.1 Выбор системной архитектуры
- •3.2 Описание функций, реализуемых программой
- •3.3 Диаграмма классов
- •3.4 Разработка пользовательского интерфейса
- •3.5 Алгоритм работы программы
- •4 Верификация и тестирование
- •4.1 Верификация
- •4.2 Тестирование
- •1.Введение
- •1.1 Наименование программы
- •1.2 Краткая характеристика области применения
- •4 Требования к программе
- •4.1 Требования к функциональным характеристикам
- •4.1.1 Требования к составу выполняемых функций
- •4.1.2 Требования к организации входных и выходных данных
- •4.1.3 Требования к временным характеристикам
- •4.2 Требования к составу и параметрам технических средств
- •4.3 Требования к информационной и программной совместимости
- •4.3.1 Требования к исходным кодам и языкам программирования
- •4.3.2 Требования к программным средствам, используемым программой
- •4.3.3 Требования к информационным структурам и методам решения
- •5 Требования к программной документации
- •6 Стадии и этапы разработки
- •6.1 Стадии разработки
- •6.2 Этапы разработки
3.3 Диаграмма классов
Разработанные классы программы
Рисунок 3.3 – Диаграмма класов разрабатываемого проекта
Класс cryptUtility отвечает за шифрование и извлечение сообщения. Для класса cryptUtility предусмотрены следующие методы.
extractMessageFromBitmap – извлекает сообщение из контейнера.
getColorComponent – возвращает один из трех основных цветов.
hideMessageInBitmap – вызывает HideOrExtract и прячет загруженное сообщение в картинку.
hideOrExtract – вызывается HideMessageInBitmap или ExtractMessageFromBitmap прячет или извлекает сообщение.
setColorComponent – устанавливает цвет пикселя.
Класс frmMain отвечает за интерфейс. Предусмотрены методы.
btnExtract_Click – обработчик при нажатии клавишу «Extract Hidden Text», проверяет введен ли пароль, и извлекает сообщение из контейнера.
btnExtractedMsgFile_Click – обработчик при нажатии клавишу «Browse» вкладки Extract, открывает диалоговое окно сохранения извлеченного текста в файл.
btnHide_Click – обработчик при нажатии клавишу «Hide Message», вызывает метод HideMessageInBitmap, проверяет введен ли ключ и сообщение.
btnImageFile_Click – обработчик кнопки «Browse», открывает окно выбора файла с фильтром допустимых контейнеров.
btnKeyFile_Click – обработчик кнопки «Hide Message» группы Hey, открывает диалоговое окно для выбора тестового файла с ключом.
btnMessage_Click – обработчик кнопки «Browse» вкладки Hide вызывает окно для выбора файла, содержание которого необходимо спрятать.
btnSaveBitmap_Click – обработчик кнопки «Save Result» вкладки Hide вызывает диалоговое окно для сохранения измененного изображения.
getFileName – метод для вызова OpenFile диалога.
getKeyStream – метод преобразует пароль в поток.
getMessageStream – метод для преобразования сообщения в последовательность байтов.
initializeComponent – инициализация графических компонентов.
3.4 Разработка пользовательского интерфейса
Интерфейс пользователя представляет собой стандартное приложение Windows, разработанное с целью обеспечения максимального удобства и простоты работы с программой.
Visual Studio мощная система визуального объектно-ориентированного проектирования. Визуальная технология разработки программ позволяет быстро создавать приложения путем размещения в форме стандартных компонентов. При этом соответствующий код программы автоматически генерируется. Такая технология освобождает разработчика от рутинной работы по созданию пользовательского интерфейса и позволяет уделить больше внимания внутренней организации данных и обработке данных. Было принято решение сделать простой интерфейс пользователя, содержащий одну форму с двумя вкладками для ввода сообщения и получения зашифрованной ранее информации. Язык интерфейса английский. Благодаря этому программа может использоваться пользователями знающими международный язык.
После запуска данного приложения пользователь видит GUI интерфейс, который состоит из трёх частей. В левом верхнем углу расположена кнопка для вызова окна выбора файла (картинки) и область для отображения выбранной картинки. Ниже, под ним, расположена область для ввода строки-ключа, для защиты зашифрованной информации от несанкционированного доступа. Пользователь вводит (или загружает с текстового файла) ключ-текст, который будет запрошен при расшифровки, т.е. только зная тот ключ можно расшифровать картинку. Третья область пользовательского окна расположена в правой части окна и состоит она из двух вкладок. Первая вкладка используется для ввода сообщения (или загрузки из текстового файла), которое нужна зашифровать в картинку. Вторая вкладка необходима для обратного действия, т.е. получения зашифрованной ранее информации из картинке (так же можно сохранить в текстовый файл полученное при расшифровки сообщение).
Окно программы представлено ниже на рисунке.
Рисунок 3.4 – Окно программы
Элементы в Carrier Bitmap – позволяют выбрать путь к файлу, в который будет добавляться сообщение. Отображает загруженный файл до и после внесения информации.
Browse – кнопка для вызова окна выбора, с которым будут производится работа.
Key – содержит область для ввода строки-ключа, для защиты зашифрованной информации от несанкционированного доступа. Ключ может быть введен либо загружен пользователем из файла.
Кнопка Browse – открывает диалоговое окно для выбора .txt файла с ключом.
В правой части приложения расположены две вкладки.
Рисунок 3.5 – Вкладка для ввода сообщения
Message – содержит текстовое поле в которое будет выводиться сообщение.
Кнопка Browse – открывает диалоговое окно для выбора .txt файла, который будит скрыт в файле-контейнере.
Кнопка Hide Message становится активной после выбора контейнера и предназначена для запуска процесса сокрытия информации.
Save Result – сохраняет картинку, в которой содержится секретная информация.
Получить зашифрованную ранее информацию можно перейдя на вторую вкладку Extract.
Рисунок 3.6 – Получения зашифрованной ранее информации из картинки
Текстовое поле содержит секретное сообщение после расшифровки.
Кнопка Extract Hidden Text становится доступной поле выбора файла-контейнера.
Кнопка Browse – открывает диалоговое окно для выбора пути для сохранения текстового файла с полным отчетом.
