Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Project.doc
Скачиваний:
1
Добавлен:
02.05.2019
Размер:
319.49 Кб
Скачать
    1. Висновки

Структура BMP докладно розглянута і показана у зображенні BMPfileFormat.png. А ми для уникнення складнощів у використанні будемо використовувати бібліотеку EasyBMP.

  1. Засоби реалізації алгоритму і программи

    1. Обрання мови програмування

Обрання мови програмування для реалізації алгоритму шифрування зображень не є справою з легких. Треба враховувати декілька факторів:

  1. Треба враховувати захищеність мови програмування від декомпіляції – тобто для цього підходять здебільшого мови середнього та низького рівня.

  2. Треба враховувати швидкодію мови програмування.

  3. Треба враховувати зручність мови програмування для програміста, адже можна написати програму шифрування і на мові асемблера, який задовольняє 2 попередні вимоги.

  4. І найголовніший фактор – писати програму треба на мові, яку програміст знає.

Отже:

  1. Інтерпретовані мови програмування не підходять – дуже висока можливість повної декомпіляції, яка у C# доходить до того, що програму можна декомпілювати аж до збереження імен змінних та функцій. Рішення: Assembler, C, C++ і всі неінтерпретовані мови.

  2. Рішення: аналогічно до попереднього, але без Delphi з його синтаксисом Pascal10.

  3. Тут би підійшли саме C-подібні інтерпретовані мови як от Java та C#, але непогані фреймворки11 є також і на C/C++.

  4. Рішення: Delphi, C, C++.

Мову C ми відкидаємо, бо автор знає її гірше ніж C++, Delphi ми відкинули по зрозумілим причинам. Залишається лише C++ на якій автор і реалізував даний алгоритм.

    1. Обрання допоміжних засобів (бібліотек)

Графічний інтерфейс було вирішено відкласти на потім (щоб не «засмічувати» програму непотрібними для реалізації алгоритму бібліотеками передчасно). Більшість популярних бібліотек для роботи з зображеннями є складними і надлишковими. Отож потрібно було знайти просту бібліотеку. Під цей критерій підпадали 2 бібліотеки: CImg та EasyBMP. CImg була «забракована» через досить погану документацію, а от EasyBMP навпаки має досить гарну документацію та гарні відгуки програмістів. До того ж вона з відкритим вихідним кодом та кроссплатформена.

Зупинятись на її описі я не буду але процитую Б. Кернігана і Д. Рітчі12: «Якщо функція написана правильно, то немає потреби знати, як вона працює; достатньо знати, що саме вона робить.» А правильність написання своїх функцій бібліотека EasyBMP вже не раз довела.

    1. Вибір IDE

Вибір IDE13 дуже важливий при розробці великих програм, а для програми, яка складається одного файлу вихідного коду (близько 125 стрічок коду) та бібліотеки, що не модифікувалась, IDE і не потрібна. Автору вистачило текстового редактора з підсвіткою синтаксису (Notepad++), інтерфейсу командного рядка з Windows 7 (cmd) та компілятора g++ з пакету MinGW. Але зважаючи на заслугу Dev-C++ 4.2.2.9 у написанні інших програм автора вона була включена у цей проект як основна IDE.

    1. Висновки

Для реалізації цього проекту було обрано мову програмування C++ із застосуванням бібліотеки EasyBMP. В якості допоміжних засобів: текстовий редактор з підсвіткою синтаксису Notepad++ та компілятор g++ з пакету MinGW. Але для зручності було реалізовано 2 програми: одна для шифрування, друга – розшифрування.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]