Помощь в написании студенческих работ
Антистрессовый сервис

Обработка текстовой информации в среде Delphi

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Для шифровки текста используем цикл, в котором будут наращиваться два аргумента и происходить процесс вставки символов в исходный текст. Первый будет индексом символов исходного текста, а второй — индекс символа в ключе шифровки. То есть первой букве в тексте будет соответствовать первая буква в слове-ключе. Так как слово-пароль обычно меньше исходного текста, при достижении циклом конца слова… Читать ещё >

Обработка текстовой информации в среде Delphi (реферат, курсовая, диплом, контрольная)

  • ВВЕДЕНИЕ
  • 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
    • 1.1 Постановка задачи
    • 1.2 Математическая модель
    • 1.3 Алгоритм решения
    • 1.4 Блок-схема
  • 2. ПРАКТИЧЕСКАЯ ЧАСТЬ
    • 2.1 Описание объектов, свойств и методов
    • 2.2 Формы и основные модули текста программы в среде Delphi
    • 2.3 Результат тестирования программного продукта
    • 2.4 Анализ полученных результатов
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
  • ПРИЛОЖЕНИЕ

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

Криптография — это наука об обеспечении безопасности данных. Она занимается поисками решений четырех важных проблем безопасности — конфиденциальности, аутентификации, целостности и контроля участников взаимодействия.

История криптографии — ровесница истории человеческого языка. Более того, первоначально письменность сама по себе была криптографической системой, так как в древних обществах ею владели только избранные. Священные книги Древнего Египта, Древней Индии тому примеры.

Первые криптосистемы встречаются уже в начале нашей эры. Так, Цезарь в своей переписке использовал уже более менее систематический шифр, получивший его имя.

Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Начиная с послевоенного времени и по нынешний день появление вычислительных средств ускорило разработку и совершенствование криптографических методов.

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

Цель курсовой работы — осуществить шифровку текста с помощью средств Delphi.

Для достижения названной цели в исследовании необходимо решить следующие задачи:

— осуществить постановку задач;

— создать блок-схемы алгоритмов;

— осуществить описание объектов, свойств, методов;

— разработать формы и представить текст программы;

— привести результаты тестирования программного продукта.

Для выполнения этих задач будем использовать среду объектно-ориентированного программирования Delphi.

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

Курсовая работа состоит из теоретической и практической части. Теоретическая часть состоит из: постановки задачи; математической модели; алгоритма решения задачи и блок. Практическая часть состоит из: описания объектов, свойств и методов; формы и основных модулей текста программы в среде Delphi; результата тестирования программного продукта; графического представления результатов; анализа полученных результатов.

алгоритмический язык визуальный программирование

1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

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

В данной курсовой работе требуется создать Windows-приложение на алгоритмическом языке Object Pascal в среде визуального программирования Delphi, которое предназначена для шифрования текста следующим образом:

для шифрования текста используется метод, основанный на сложении текста и пароля: «мой текст» + «пароль» = ('м'+'п')('о'+'а')… То есть каждый символ получают путем сложения соответствующих символов текста и пароля. Под «сложением символов» подразумевается сложение номеров этих символов. Обычно пароль длиннее текста, поэтому его размножают: «парольпар». Чтобы расшифровать текст, нужно проделать обратную операцию, то есть из текста вычесть пароль.

1.2 Математическая модель

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

Алфавит — конечное множество используемых для кодирования информации знаков.

Текст — упорядоченный набор из элементов алфавита.

В качестве примеров алфавитов, используемых в современных ИС можно привести следующие:

— алфавит Z33 — 32 буквы русского алфавита и пробел;

— алфавит Z256 — символы, входящие в стандартные коды ASCII и КОИ-8;

— бинарный алфавит — Z2 = {0,1};

— восьмеричный алфавит или шестнадцатеричный алфавит.

Шифрование — преобразовательный процесс: исходный текст, который носит также название открытого текста, заменяется шифрованным текстом.

Дешифрование — обратный шифрованию процесс. На основе ключа шифрованный текст преобразуется в исходный.

Ключ — информация, необходимая для беспрепятственного шифрования и дешифрования текстов.

На рисунке 1.1 показана блок-схема процедуры шифрования файлов.

Рисунок 1.1 — Процедура шифрования файлов

1.3 Алгоритм решения

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

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

1.4 Блок-схема

На рисунке 1.2 представлена блок-схема процесса шифровки, где t — это текст, который будет результатом шифровки, str — исходный текст, w — слово-пароль, а i и k — это индексы для строк str и w соответственно.

Рисунок 1.2 — Блок-схема алгоритма шифрования текста

На рисунке 1.3 представлена блок-схема процесса дешифровки, в процессе которого сначала проверяется введенный ключ, а затем идет сам процесс дешифровки, где t — это текст, который будет результатом дешифровки, str — зашифрованный текст, w — предполагаемое слово-пароль, w0 — строка размноженного пароля, извлеченная из зашифрованного текста, w1 — строка размноженного предполагаемого пароля, а i и k используются как индексы.

Рисунок 1.3 — Блок-схема алгоритма дешифровки текста

2. ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1 Описание объектов, свойств и методов

В ходе составления программы были использованы следующие объекты с их свойствами:

Label — текстовая метка (надпись) на форме. Используется для отображения любого текста в окне. Текст задаётся в свойстве Caption.

Edit — поле ввода. Используется для ввода любых данных (текста, числа и т. д.), представленных одной строкой. Текст хранится свойством Text. Свойство MaxLength позволяет задать максимальное число символов, которое может быть введено в поле. Значение 0 означает, что ограничение не установлено.

Memo — многострочный Edit. Используется для ввода больших объёмов текста. Свойство ReadOnly делает этот объект нередактируемым. Свойство ScrollBars позволяет указать полосы прокрутки, которые будут отображаться у поля при недостатке места для всего текста:

*ssNone — без полос прокрутки;

*ssHorizontal — горизонтальная полоса прокрутки;

*ssVertical — вертикальная;

*ssBoth — обе: и горизонтальная, и вертикальная.

Button — командная кнопка. Caption — текст на кнопке.

Компоненты OpenDialog — диалог «Открыть файл» и SaveDialog — диалог «Сохранить файл как…». Все свойства этих компонентов одинаковы, только их смысл несколько различен для открытия и закрытия файлов. Основное свойство, в котором возвращается в виде строки выбранный пользователем файл, — FileName. Типы искомых файлов, появляющиеся в диалоге в выпадающем списке «Тип файла», задаются свойством Filter.

2.2 Формы и основные модули текста программы в среде Delphi

При решении поставленной задачи будут использованы следующие объекты (рисунок 2.1)

Рисунок 2.1 — Объекты программы

Примечание — источник: собственная разработка

Button1.6 — командные кнопки;

Label1.3 — информационные метки;

Edit1 — поле ввода ключа шифра;

Memo1.2 — многострочные текстовые редакторы;

OpenDialog1 — диалог открытия файлов;

SaveDialog1 — диалог сохранения файлов.

Данные объекты размещены нами на форме пользовательского интерфейса, которая представлена на рисунке 2.2 и 2.3.

Рисунок 2.2 — Форма пользовательского интерфейса в режиме шифровки

Рисунок 2.3 — Форма пользовательского интерфейса в режиме дешифровки

Главной кнопке «Зашифровать"/"Дешифровать» назначим программный код:

procedure TForm1. Button1Click (Sender: TObject);

var w, w0, w1: string; i, k: integer;

begin

str:=Memo1.Text; memo2. Text:=''; w0:=''; w:=Edit1.Text;

if (w='') or (str='') then begin MessageDlg ('Присутствуют пустые поля', mtInformation, [mbOK], 0);

exit; end;

if Button1. Caption='Зашифровать' then begin k:=1;

for i:=1 to Length (str) do begin

Memo2.Text:=Memo2.Text+str[i]+w[k];

k:=k+1;

if k>length (w) then k:=1;

end;

end

else begin

if op then for i:=1 to Length (str) do

if (str[i]=#$A) then Delete (str, i,1);

for i:=1 to Length (str) do

if not (odd (i)) then w0:=w0+str[i];

k:=1;

for i:=1 to length (w0) do begin

w1:=w1+w[k];

k:=k+1;

if k>length (w) then k:=1; end;

if w1=w0 then begin

for i:=1 to length (str) do begin

if (str[i]=#$D) and (op) then Memo2. Text:=Memo2.Text+#10;

if odd (i) then Memo2. Text:=Memo2.Text+str[i]; end; end

else MessageDlg ('Неправильный ключ', mtWarning, [mbcancel], 0); exit; end;

op:=false;

end;

Кнопка «<—>» отвечает за переключение между режимами программы. Ей назначим код:

procedure TForm1. Button2Click (Sender: TObject);

begin

if Label1. Caption='Исходный текст' then begin

Label1.Caption:='Зашифрованный текст';

Label2.Caption:='Исходный текcт';

Button1.Caption:='Дешифровать';

end

else

begin

Label1.Caption:='Исходный текст';

Label2.Caption:='Зашифрованный текст';

Button1.Caption:='Зашифровать';

end; end;

После создания приложения приступим к его тестированию.

2.3 Результат тестирования программного продукта Для проверки правильности работы программы мы зашифруем какое-нибудь одно слово, чтобы с легкостью проверить правильность результата вручную.

Запишем в поле «Исходный текст» слово «Мобильник», а в поле «Слово-пароль» — «кот» и нажмем кнопку «Зашифровать» (рисунок 2.4)

Рисунок 2.4 — Шифрование слова при помощи программы.

Зашифровав слово ручным методом и с помощью программы, мы убедились в правильности ее работы.

Проверим работу программы, зашифровав большой текст, а затем проведя обратный процесс.

Шифровка представлена на рисунке 2.5.

Рисунок 2.5 — Диалоговое окно программы после процесса шифровки

Также выполним обратный процесс с зашифрованным текстом, поменяв режим работы, скопировав зашифрованный текст в соответствующую ему форму и введя ключ шифровки. Следует заметить, что программа проведет процесс дешифровки только при правильном ключе шифровки, иначе будет выведено сообщение «Неверный ключ» (рисунок 2.6).

Рисунок 2.6 — Диалоговое окно программы в процессе дешифровки при неправильно введенном ключе

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

Рисунок 2.7 — Диалоговое окно программы после процесса дешифровки

2.4 Анализ полученных результатов

Анализируя результаты, полученные при выполнении программы, приходим к выводу, что программа способна шифровать и дешифровать текст и то, что она работает корректно.

ЗАКЛЮЧЕНИЕ

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

Целью курсовой работы было осуществление шифровки и дешифровки текста с помощью средств среды Delphi.

При выполнении курсовой работы:

· была изучена теория и технология работы с средой программирования Borland Delphi7;

· была изучена и проанализирована соответствующая литература;

· была составлена программа для шифровки и дешифровки текста.

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

Знания, полученные в результате работы над курсовым проектом, позволят в дальнейшем использовать Delphi для решения технических задач.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Архангельский, А.Я. 100 компонентов общего назначения библиотеки Delphi / А. Я. Архангельский. — Москва: Бином, 2002. — 272 с.

2. Бобровский, С.И. Delphi 7. Учебный курс/ С. И. Бобровский — СПб.: Питер, 2004. — 736 с.

3. Культин, Н. Б. Основы программирования в Delphi 7/ Н. Б. Культин — СПб.: БХВ.- СПб, 2003. — 608 с.

4. Фаронов, В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов/ В. В. Фаронов — СПб.: Питер, 2006. — 640 с.

ПРИЛОЖЕНИЕ

Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus;

type

TForm1 = class (TForm)

Memo1: TMemo;

Memo2: TMemo;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Edit1KeyPress (Sender: TObject; var Key: Char);

procedure Button3Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Button6Click (Sender: TObject);

procedure Button7Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

str: WideString; w, w0: string; op: boolean;

implementation

{$R *.dfm}

procedure TForm1. Button1Click (Sender: TObject);

var w, w0, w1: string; i, k: integer;

begin

str:=Memo1.Text; memo2. Text:=''; w0:=''; w:=Edit1.Text;

if (w='') or (str='') then begin MessageDlg ('Присутствуют пустые поля', mtInformation, [mbOK], 0);

exit; end;

if Button1. Caption='Зашифровать' then begin k:=1;

for i:=1 to Length (str) do begin

Memo2.Text:=Memo2.Text+str[i]+w[k];

k:=k+1;

if k>length (w) then k:=1;

end;

end

else begin

if op then for i:=1 to Length (str) do

if (str[i]=#$A) then Delete (str, i,1);

for i:=1 to Length (str) do

if not (odd (i)) then w0:=w0+str[i];

k:=1;

for i:=1 to length (w0) do begin

w1:=w1+w[k];

k:=k+1;

if k>length (w) then k:=1; end;

if w1=w0 then begin

for i:=1 to length (str) do begin

if (str[i]=#$D) and (op) then Memo2. Text:=Memo2.Text+#10;

if odd (i) then Memo2. Text:=Memo2.Text+str[i]; end; end

else MessageDlg ('Неправильный ключ', mtWarning, [mbcancel], 0); exit; end;

op:=false;

end;

procedure TForm1. Button2Click (Sender: TObject);

begin

if Label1. Caption='Исходный текст' then begin

Label1.Caption:='Зашифрованный текст';

Label2.Caption:='Исходный тескт';

Button1.Caption:='Дешифровать';

end

else

begin

Label1.Caption:='Исходный текст';

Label2.Caption:='Зашифрованный текст';

Button1.Caption:='Зашифровать';

end; end;

procedure TForm1. Edit1KeyPress (Sender: TObject; var Key: Char);

begin

case key of

#13: Button1. Click; end;

end;

procedure TForm1. Button3Click (Sender: TObject);

begin

Memo1.Clear;

end;

procedure TForm1. Button4Click (Sender: TObject);

begin

Memo2.Clear;

end;

procedure TForm1. Button5Click (Sender: TObject);

begin

op:=true;

OpenDialog1.Title:='Открыть файл';

with OpenDialog1, Memo1 do

if Execute then

begin

Lines.LoadFromFile (FileName);

OpenDialog1.FileName:=FileName;

end;

end;

procedure TForm1. Button6Click (Sender: TObject);

begin

SaveDialog1.Title:='Сохранить исходный текст';

SaveDialog1.FileName:='Исходный текст';

with SaveDialog1, Memo1 do

if Execute then

begin

Lines.SaveToFile (FileName);

SaveDialog1.FileName:=Filename;

end;

SaveDialog1.Title:='Сохранить зашифрованный текст';

SaveDialog1.FileName:='Зашифрованный текст';

with SaveDialog1, Memo2 do

if Execute then

begin

Lines.SaveToFile (FileName);

SaveDialog1.FileName:=Filename;; end;

end;

procedure TForm1. Button7Click (Sender: TObject);

begin

MessageDlg ('Программа Шифратор предназначена для шифровки-дешифровки текста.'+#13+'Для выполнения шифровки необходимо ввести текст в поле «Исходный текст», ввести ключ, который необходимо запомнить (иначе дешифровка текста не будет выполнена), и нажать «Зашифровать» .'+#13+'Для обратной операции необходимо поменять направление перевода клавишей «<—>» и провести соответствующие операции'+#13+'Также программа выполняет открытие из файла и сохранение текста в файл.'+#13+'Программа разработана студентом 1-го курса БарГУ Гуриновичем Алексеем в 2012 году', mtInformation,[mbOK], 0) ;

end;

Показать весь текст
Заполнить форму текущей работой