Создание компонента для шифрования-дешифрования текста

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,91 Мб
  • Опубликовано:
    2014-09-02
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Создание компонента для шифрования-дешифрования текста













КУРСОВАЯ РАБОТА

по дисциплине «Технология программирования»

«Создание компонента для шифрования-дешифрования текста»

Содержание

Введение

. Постановка задачи

. Алгоритм создания компонента

. Исходный текст компонента

. Инструкция пользователя

. Исходный текст программы

Заключение

Список литературы

Приложение

Введение

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

При создании компонента шифрования текста я использовал три метода шифрования: алгоритм «Цезаря», алгоритм «Модифицированного Цезаря» и алгоритм «Скитала».

.Алгоритм шифрования «Цезарь»

Шифр Цезаря - один из древнейших шифров <#"785991.files/image001.gif">

type - выбираем предка для компонента;Name - имя класса для компонента;Page - выбираем вкладку на которой будет наш компонент. В данном случае мы создали новую вкладку с названием My Component.

Поля Unit file name и Search path определяются автоматически и в них ничего вводить не нужно.

При нажатии кнопки ОК появляется шаблон нашего будущего компонента.

Переопределяем конструктор у этого компонента:

В директиве public вставляем строку Create(AOwner: TComponent); override;

нажатие на этой строке Ctrl + Shift + C создает шаблон для этого метода, внутри которого мы вставляем такие строки:Create(AOwner); {Вызываем унаследованный конструктор}
Options := Options + [ofFileMustExist, ofPathMustExist]; {Выполняем необходимые нам действия}

Теперь нужно сохранить и установить созданный компонент.

В меню Component выбираем пункт Install Component…

В поле Unit file name указываем имя нашего сохранённого модуля и нажимаем ОК.

Тут появиться сообщение «Такой то пакет будет изменён. Продолжить?», на это сообщение мы нажимаем кнопку ОК.


Теперь на в новой вкладе My component появился наш собственный компонент ShifText.

. Исходный текст компонента

ShifText;

interface, Classes, Dialogs;= class(TOpenDialog)

{ Private declarations }

{ Protected declarations }AlgCez(S,Cl:string):string;DeAlgCez(S,Cl:string):string;AlgVijen(S,Cl:string):string;DeAlgVijen(S,Cl:string):string;AlgSkit(S,Cl:string):string;DeAlgSkit(S,Cl:string):string;Create(AOwner: TComponent); override;

{ Public declarations }

{ Published declarations };Register;Register;('My Component', [TShifText]);;

{ TShifText }TShifText.Create(AOwner: TComponent);

beginCreate(AOwner); {Вызываем унаследованный конструктор}:= Options + [ofFileMustExist, ofPathMustExist]; {Выполняем необходимые нам действия}

end;TShifText.AlgCez(S,Cl:string):string;i,k,k1,a,Cluch:Integer;:=StrToInt(Cl);i:=1 to Length(S) do:=Ord(S[i]);:=k+Cluch;(k1>=255) then:=k1-255;:=a+1;;[i]:=Chr(k1);;:=S;;TShifText.DeAlgCez(S,Cl:string):string;i,k,k1,a,Cluch:integer;:=StrToInt(Cl);i:=1 to Length(S) do:=Ord(S[i]);:=k-Cluch;(k1<=1) then:=1-k1;:=255-a;;[i]:=Chr(k1);;:=S;;TShifText.AlgVijen(S,Cl:string):string;i,k,k1,a,Cluch,Cl1:Integer;:=StrToInt(Cl);:=1;i:=1 to Length(S) do:=Ord(S[i]);Cl1<Cluch then:=k+Cl1;k1>=255 then:=k1-255;:=a+1;;if Cl1=Cluch then:=k+Cl1;k1>=255 then:=k1-255;:=a+1;;:=1;:=k+Cl1;k1>=255 then:=k1-255;:=a+1;;;;[i]:=Chr(k1);:=Cl1+1;;:=S;;TShifText.DeAlgVijen(S,Cl:string):string;i,k,k1,a,Cluch,Cl1:integer;:=StrToInt(Cl);:=1;i:=1 to Length(S) do:=Ord(S[i]);:=k-1;Cl1<Cluch then:=k-Cl1;k1<=1 then:=1-k1;:=255-a;;if Cl1=Cluch then:=k-Cl1;k1<=1 then:=1-k1;:=255-a;;:=1;:=k-Cl1;k1<=1 then:=1-k1;:=255-a;;;[i]:=Chr(k1);:=Cl1+1;;:=S;;TShifText.AlgSkit(S,Cl:string):string;S1,n:string;i,j,a,Cl2,Cl1,d:integer;mas:array of array of string;:=StrToInt(Cl);(Length(S) mod Cl2=0) then Cl1:=(Length(S)div Cl2):=(Length(S)div Cl2)+1;:=1;(mas,Cl2,Cl1+1);j:=0 to Cl1 doi:=0 to Cl2-1 doa<=Length(S) then(Ord(S[a])=13) then S[a]:=Char(149);(Ord(S[a])=10) then inc(a);[i,j]:=S[a];(a);[i,j]:=' ';(a);;:='';:='';i:=0 to Cl2-1 doj:=0 to Cl1-1 do:=mas[i,j];:=S1+n;(a);;:=S1;;TShifText.DeAlgSkit(S,Cl:string):string;S1,n:string;i,j,a,Cl2,Cl1,k:integer;mas:array of array of string;:=0;:=StrToInt(Cl);(Length(S) mod Cl2=0) then Cl1:=(Length(S)div Cl2):=(Length(S)div Cl2)+1;:=1;(mas,Cl1+1,Cl2);j:=0 to Cl2-1 doi:=0 to Cl1-1 doa<=Length(S) then(Ord(S[a])=149) then S[a]:=Char(13);(Ord(S[a])=10) then inc(a);[i,j]:=S[a];(a);[i,j]:=' ';(a);;:='';:='';i:=0 to Cl1-1 doj:=0 to Cl2-1 do:=mas[i,j];:=S1+n;(k);;;:=S1;

end;.

. Инструкция пользователя

Данная программа «Шифратор-дешифратор» (внешний вид программы до начала работы, Приложение 1, Рис. 1) обладает следующими возможностями:

Для работы с программой «Шифратор-дешифратор» текст для последующего шифрования можно вводить вручную, а можно открыть файл с текстом (Файл ->Открыть, Приложение 1, Рис. 2).

Для шифрования текста выбранным алгоритмом нажимаем соответствующую кнопку на форме (Приложение 1, Рис. 3), если программа обнаружит, что текст не введен или файл не открыть выйдет предупреждение (Приложение 1, Рис. 4).

Для дешифрования текста выбранным алгоритмом нажимаем соответствующую кнопку на форме (Приложение 1, Рис. 5).

Для просмотра инструкции пользователя программы, в меню «Файл» выбираем пункт «Справка» (Дополнительно ->Справка, Приложение 1, Рис. 6).

Для просмотра дополнительной информации по программе (алгоритмы шифрования используемые в данной программе, дата разработки, данные о разработчике), в меню «Дополнительно» выбираем пункт «О программе…» (Дополнительно ->О программе…, Приложение 1, Рис. 7).

В программе существует возможность просмотра примерного алгоритма шифрования-дешифрования текста, для этого нажимаем на форме на название алгоритма (Приложение 1, Рис. 8).

Для очистки всех окон программы есть кнопка «Очистить».

Для выхода из программы кнопка «Выход».

. Исходный текст программы

компонент шифрование алгоритм

unit Unit1;

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Menus, ShifText, ExtCtrls, jpeg, Spin, XPMan;Unit2, Unit3;

{$R *.dfm}TForm1.Button1Click(Sender: TObject);

var s:string; //шифрования текст алгоритмом "Цезаря";

begin(Memo1.Text<>'')and(SpinEdit1.Text<>'') then //если поле не пустое то.Text:=ShifText1.AlgCez(Memo1.Text,SpinEdit1.Text); //применаем алгоритм шифрации к тексту;

end else //иначе выводим сообщение об ошибке;:='Сначало введите текст или откройте текстовый файл!!!'#13#10;

MessageBox(handle,PChar(S),'Ошибка!',MB_OKor MB_ICONWARNING);;;TForm1.N2Click(Sender: TObject);ShifText1.Execute then .Lines.LoadFromFile(ShifText1.FileName);;;TForm1.Button3Click(Sender: TObject);

var s:string; //дешифрование текста алгоритмом "Цезаря";

begin(Memo2.Text<>'')and(SpinEdit1.Text<>'') then.Text:=ShifText1.DeAlgCez(Memo2.Text,SpinEdit1.Text);

end else //иначе выводим сообщение об ошибке;:='Сначало введите текст или откройте текстовый файл!!!'#13#10;

MessageBox(handle,PChar(S),'Ошибка!',MB_OK or MB_ICONWARNING);;;TForm1.Button4Click(Sender: TObject);

var s:string; //шифрования текст алгоритмом "Модифицированного Цезаря";

begin(Memo1.Text<>'')and(SpinEdit1.Text<>'') then.Text:=ShifText1.AlgVijen(Memo1.Text,SpinEdit1.Text); //применаем алгоритм шифрации к тексту;

end else //иначе выводим сообщение об ошибке;:='Сначало введите текст или откройте текстовый файл!!!'#13#10;

MessageBox(handle,PChar(S),'Ошибка!',MB_OK or MB_ICONWARNING);;;TForm1.Button5Click(Sender: TObject);

var s:string; //дешифрование текста алгоритмом "Модифицированного Цезаря";

end else //иначе выводим сообщение об ошибке;:='Сначало введите текст или откройте текстовый файл!!!'#13#10;

MessageBox(handle,PChar(S),'Ошибка!',MB_OK or MB_ICONWARNING);;;TForm1.Button6Click(Sender: TObject);

var s:string; //шифрование текста алгоритмом "Скитала";

begin(Memo1.Text<>'')and(SpinEdit1.Text<>'') then.Text:=ShifText1.AlgSkit(Memo1.Text,SpinEdit1.Text); //применаем алгоритм дешифрации к тексту;

end else //иначе выводим сообщение об ошибке;:='Сначало введите текст или откройте текстовый файл!!!'#13#10;

MessageBox(handle,PChar(S),'Ошибка!',MB_OK or MB_ICONWARNING);;;TForm1.Button7Click(Sender: TObject);

var s:string; //дешифрование текста алгоритмом "Скитала";

begin(Memo4.Text<>'')and(SpinEdit1.Text<>'') then.Text:=ShifText1.DeAlgSkit(Memo4.Text,SpinEdit1.Text); //применаем алгоритм дешифрации к тексту;

end else //иначе выводим сообщение об ошибке;:='Сначало введите текст или откройте текстовый файл!!!'#13#10;

MessageBox(handle,PChar(S),'Ошибка!',MB_OK or MB_ICONWARNING);;;TForm1.Button8Click(Sender: TObject);.Clear; Memo2.Clear; Memo3.Clear; Memo4.Clear; Memo5.Clear; Memo6.Clear; Memo7.Clear;

SpinEdit1.Value:=1; //очистка всех окон и установление в поле ключ значения ‘1’;.

Заключение

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

При создании компонента шифрования текста я использовал три метода шифрования: алгоритм «Цезаря», алгоритм «Модифицированного Цезаря» и алгоритм «Скитала».

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

Таким образом, длина блока n определялась длиной и диаметром палочки, а само шифрование заключалось в перестановке символов исходного текста в соответствии с длиной окружности палочки. Например, используя палочку, по длине окружности которой помещается 4 символа, а длина палочки позволяет записать 6 символов, исходный текст: «это шифр древней спарты» превратится в шифрограмму: «эфвптрнао ер дйтшр ыиес».

Список литературы

Христосенко М. Пособие по написанию своих компонентов на Дельфи для начинающих, 2010.

Акулов Н. Пособие по написанию компонентов, 2006.

Роцкий Т. Статья «Шифрование в DELPHI», 2009.

Приложение

Рис. 1. Внешний вид программы

Рис. 2. Открыть файл

Рис. 3. Демонстрация зашифрованного текста

Рис. 4. Предупреждение

Рис. 5. Демонстрация дешифрованного текста

Рис. 6. Раздел «Справка»

Рис. 7. Раздел «О программе…»

Рис. 8. «Пояснение» к алгоритмам шифрования

Похожие работы на - Создание компонента для шифрования-дешифрования текста

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!