|
Обрання мови програмування для реалізації алгоритму шифрування зображень не є справою з легких. Треба враховувати декілька факторів:
1. Треба враховувати захищеність мови програмування від декомпіляції – тобто для цього підходять здебільшого мови середнього та низького рівня.
2. Треба враховувати швидкодію мови програмування.
3. Треба враховувати зручність мови програмування для програміста, адже можна написати програму шифрування і на мові асемблера, який задовольняє 2 попередні вимоги.
4. І найголовніший фактор – писати програму треба на мові, яку програміст знає.
Отже:
1. Інтерпретовані мови програмування не підходять – дуже висока можливість повної декомпіляції, яка у C# доходить до того, що програму можна декомпілювати аж до збереження імен змінних та функцій. Рішення: Assembler, C, C++ і всі неінтерпретовані мови.
2. Рішення:аналогічно до попереднього, але без Delphi з його синтаксисом Pascal[10].
3. Тут би підійшли саме C-подібні інтерпретовані мови як от Java та C#, але непогані фреймворки[11] є також і на C/C++.
4. Рішення: Delphi, C, C++.
Мову C ми відкидаємо, бо автор знає її гірше ніж C++, Delphi ми відкинули по зрозумілим причинам. Залишається лише C++ на якій автор і реалізував даний алгоритм.
4.2 Обрання допоміжних засобів (бібліотек)
Графічний інтерфейс було вирішено відкласти на потім (щоб не «засмічувати» програму непотрібними для реалізації алгоритму бібліотеками передчасно). Більшість популярних бібліотек для роботи з зображеннями є складними і надлишковими. Отож потрібно було знайти просту бібліотеку. Під цей критерій підпадали 2 бібліотеки: CImg та EasyBMP. CImg була «забракована» через досить погану документацію, а от EasyBMP навпаки має досить гарну документацію та гарні відгуки програмістів. До того ж вона з відкритим вихідним кодом та кроссплатформена.
Зупинятись на її описі я не буду але процитую Б. Кернігана і Д. Рітчі[12]: «Якщо функція написана правильно, то немає потреби знати, як вона працює; достатньо знати, що саме вона робить.» А правильність написання своїх функцій бібліотека EasyBMP вже не раз довела.
4.3 Вибір IDE
Вибір IDE[13] дуже важливий при розробці великих програм, а для програми, яка складається одного файлу вихідного коду (близько 125 стрічок коду) та бібліотеки, що не модифікувалась, IDE і не потрібна. Автору вистачило текстового редактора з підсвіткою синтаксису (Notepad++), інтерфейсу командного рядка з Windows 7 (cmd) та компілятора g++ з пакету MinGW. Але зважаючи на заслугу Dev-C++ 4.2.2.9 у написанні інших програм автора вона була включена у цей проект як основна IDE.
Дата добавления: 2015-07-20; просмотров: 58 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Структура файлу | | | Висновки |