Курсовые - Сервер дешифрования текстов зашифрованных методом замены

РЕАЛИЗАЦИЯ ПРОГРАММНОГО МОДУЛЯ

3 РЕАЛИЗАЦИЯ ПРОГРАММНОГО МОДУЛЯ

3.1 Описание структуры разрабатываемого проекта

Разрабатываемый программный продукт будет содержать 2 формы: главную форму приложения и основную форму (в которой происходит ввод данных, само шифрование/дешифрование данных и вывод конечных результатов). Основное окно приложения будет содержать главное меню. Схема главного меню представлена рисунке 7.

 

 

Рисунок 7 Лист 6 – Схема главного меню

 

3.2 Создание форм программы

Главная форма программы раскрывается при запуске программы и содержит следующие элементы:

  • Заголовок приложения с изображением собственной пиктограммы;
  • Строку пояснения, где отображаются для чего разработана данная программа;
  • Кнопку “Далее”, при нажатии которой выполняется переход на основную форму;

Форма главного окна представлена на рисунке 7.

 

 

 

Рисунок 7 – Форма главного окна

 

Основная форма программы раскрывается при нажатии кнопки   и содержит следующие элементы:

  • Заголовок приложения с изображением собственной пиктограммы;
  • Строку главного меню в верхней части формы;
  • Поля для исходного/зашифрованного текста;
  • Кнопку “Зашифровать”, при нажатии которой выполняется шифрование текста введенного в поле для исходного текста и вывод зашифрованного текста в поле для зашифрованного текста (шифрование выполняется методом “Цезаря”);
  • Кнопку “Зашифровать”, при нажатии которой выполняется шифрование текста введенного в поле для исходного текста и вывод зашифрованного текста в поле для зашифрованного текста (шифрование выполняется методом “Атбаш”);
  • Кнопку “Расшифровать”, при нажатии которой выполняется дешифрование текста введенного в поле для зашифрованного текста и вывод расшифрованного текста в поле для исходного текста (дешифрование выполняется методом “Цезаря”);
  • Кнопку “Расшифровать”, при нажатии которой выполняется дешифрование текста введенного в поле для зашифрованного текста и вывод расшифрованного текста в поле для исходного текста (дешифрование выполняется методом “Атбаш”);
  • Кнопку “Cancel”, при нажатии которой выполняется выход из программы;

Форма основного окна представлена на рисунке 8.

 

Рисунок 8 – Форма основного окна

 

При разработке основной формы программы были использованы следующие компоненты: BitBtn, Label, Image, MainMenu, Memo.

 

3.3 Написание кода для ввода исходных данных, их шифрации и вывода зашифрованных данных (метод “Цезаря”)

Для ввода исходных данных используется компонент Memo1, находящийся на основной форме. Для шифрации введенного текста программа считает количество строк во всем тексте, и в каждой строке находит номер каждого символа, за тем прибавляет к номеру символа число три и выводит в место исходного символа символ который соответствует номеру исходного символа увеличенному на число три в компонент Memo2.

Пример шифрации исходных данных и вывода зашифрованных данных (метод “Цезаря”):

//Шифрование методом “Цезаря”

k := Memo1.Lines.Count;

for i := 0 to k do  begin

a[i]:=Memo1.Lines[i];

n:=length(a[i]);

s:=a[i];

s2:='';

for j := 1 to n do  begin

z:=ord(s[j]);

z:=z+3;

S1:=chr(z);

s2:=s2+s1;

a[i]:=s2;

end;

end;

//Вывод зашифрованных данных

 for i := 0 to k do

Memo2.Lines.Add(a[i]);

end;

 

3.4 Написание кода для ввода исходных данных, их шифрации и вывода зашифрованных данных (метод “Атбаш”)

Для ввода исходных данных используется компонент Memo1, находящийся на основной форме. Для шифрации введенного текста программа считает количество строк во всем тексте и если трока не пуста, то программа заменяет каждый символ в этой строке на соответствующий символ, после замены всех символов строки программа переходит на следующую строку и так пока не будут пройдены все строки, зашифрованные данные выводятся в компонент Memo2.

Пример шифрации исходных данных и вывода зашифрованных данных (метод “Атбаш”):

//шифрование методом “Атбаш”           

s:=memo1.Lines[j];

                n:=length(s);

                For i:=0 to n do begin

                if s<>'' then    case s[i] of

                        'A': insert('Z',v,i);

                        'B': insert('Y',v,i);

                        …//символы от D до X

                        'Y': insert('B',v,i);

                        'Z': insert('A',v,i);

                         //xxx

                        'a': insert('z',v,i);

                        'b': insert('y',v,i);

                         …//символы от d до x

                        'y': insert('b',v,i);

                        'z': insert('a',v,i);

                         //xxx

                        'А': insert('Я',v,i);

                        'Б': insert('Ю',v,i);

                         …//символы от Д до Э

                        'Ю': insert('Б',v,i);

                        'Я': insert('А',v,i);

                        //XXX

                       'а': insert('я',v,i);

                       'б': insert('ю',v,i);

                        …//символы д-э

                       'ю': insert('б',v,i);

                       'я': insert('а',v,i);

                   //xxx

                       '0': insert('9',v,i);

                       '1': insert('8',v,i);

                       …//символы от 2 до №

                       '<': insert('<',v,i);

                       '>': insert('>',v,i);

                end;

                end;

//вывод зашифрованных данных

memo2.Lines.Add(v);

end;

 

3.5 Написание кода для ввода зашифрованных данных, их дешифрации и вывода исходных данных (метод “Цезаря”)

Для ввода зашифрованных данных используется компонент Memo2, находящийся на основной форме. Для дешифрации введенного текста программа считает количество строк во всем тексте, и в каждой строке находит номер каждого символа, за тем отнимает от номера символа число три и выводит в место исходного символа символ который соответствует номеру исходного символа уменьшенному на число три в компонент Memo1.

Пример дешифрации зашифрованных данных и вывода исходных данных (метод “Цезаря”):

//дешифрование методом “Цезаря”

k := Memo2.Lines.Count;                                        

for i := 0 to k do  begin

a[i]:=Memo2.Lines[i];

n:=length(a[i]);

s:=a[i];

s2:='';

for j := 1 to n do  begin

z:=ord(s[j]);

z:=z-3;

S1:=chr(z);

s2:=s2+s1;

a[i]:=s2;

end;

end;

//Вывод исходных данных

for i := 0 to k do

Memo1.Lines.Add(a[i]);

end;

 

3.6 Написание кода для ввода зашифрованных данных, их дешифрации и вывода исходных данных (метод “Атбаш”)

Для ввода зашифрованных данных используется компонент Memo2, находящийся на основной форме. Для дешифрации введенного текста программа считает количество строк во всем тексте и если трока не пуста, то программа заменяет каждый символ в этой строке на соответствующий символ, после замены всех символов строки программа переходит на следующую строку и так пока не будут пройдены все строки, исходные данные выводятся в компонент Memo1.

Пример дешифрации исходных данных и вывода зашифрованных данных (метод “Атбаш”):

//дешифрование методом “Атбаш”

s:=memo2.Lines[j];

                n:=length(s);

                For i:=0 to n do begin

                if s<>'' then    case s[i] of

                        'A': insert('Z',v,i);

                        'B': insert('Y',v,i);

                         …//символы от D до X

                        'Y': insert('B',v,i);

                        'Z': insert('A',v,i);

                         //xxx

                        'a': insert('z',v,i);

                        'b': insert('y',v,i);

                        …//символы от d до x

                        'y': insert('b',v,i);

                        'z': insert('a',v,i);

                         //xxx

                        'А': insert('Я',v,i);

                        'Б': insert('Ю',v,i);

                        …//символы от Д до Э

                        'Ю': insert('Б',v,i);

                        'Я': insert('А',v,i);

                        //XXX

                       'а': insert('я',v,i);

                       'б': insert('ю',v,i);

                       …//символы д-э

                       'ю': insert('б',v,i);

                       'я': insert('а',v,i);

                   //xxx

                       '0': insert('9',v,i);

                       '1': insert('8',v,i);

                       …//символы от 2 до №

                       '<': insert('<',v,i);

                       '>': insert('>',v,i);

                end;

                end;

//вывод зашифрованных данных

Memo1.Lines.Add(v);

end;

 

3.7 Проектирование интерфейса программы

 

Интерфейс приложения содержит следующие формы:

  • Главную форму программы;
  • Основную форму программы;

Главное окно содержит строку пояснения, где отображаются для чего разработана данная программа и кнопку “Далее” при нажатии которой выполняется переход на основную форму программы.

Форма главного окна представлена на рисунке 8.

 

Рисунок 8 – Форма главного окна

 

Основное окно содержит главное меню содержащее три пункта (Зашифровать, Расшифровать, Справка), поле для исходного текста, поле для зашифрованного текста, две кнопки “Зашифровать”, две кнопки “Расшифровать” (каждая кнопка шифрует дынные разными способами, если была выбрана одна кнопка “Зашифровать”, то та кнопка “Расшифровать” которая предусмотрена не для этого метода станет неактивной), кнопку “Retry” (кнопка рестарта программы) и кнопку “Cancel” (кнопка выхода из программы).

Форма основного окна представлена на рисунке 9.

 

Рисунок 9 – Форма основного окна

 

При нажатии в главном меню программы пункта “Зашифровать” появляется вкладка, приведенная на рисунке 10.

Что происходит при нажатии пункта “Зашифровать” 10.

 

                                  

 

Рисунок 10 – Вкладка 1

 

При нажатии в главном меню программы пункта “Расшифровать” появляется вкладка, приведенная на рисунке 11.

Что происходит при нажатии пункта “Зашифровать” 10.

 

                                

                                 

                                   Рисунок 10 – Вкладка 2

 

Программа содержит справочную систему, приведенную на рисунке 12.

 

Рисунок 12 - Справочник


 

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться