Автор работы: Пользователь скрыл имя, 08 Ноября 2011 в 19:02, курсовая работа
В настоящее время большое внимание уделяется информации, недаром наш век называют «информационным». Во время того, как люди познают технологии хранения и передачи информации, встает вопрос о ее защите от несанкционированного доступа. Для решения этой проблемы было разработано большое количество разнообразных методов кодирования информации, которые могут быть реализованы программно. Данная разработка представляет собой программный модуль, обеспечивающий шифрование и расшифровывание информационных блоков.
АННОТАЦИЯ
ВВЕДЕНИЕ
Постановка задачи
Основные понятия
Выбор методов шифрования
Программная реализация
Общее описание
Дополнительные модули
Руководство пользователя
ЗАКЛЮЧЕНИЕ
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
ПРИЛОЖЕНИЕ А
var
i: integer;
begin
If
(UsedMethodsBox.ItemIndex=-1)
(UsedMethodsBox.Items.
begin
EnableKeys(False);
DescMemo.Clear;
Exit;
end else
begin
EnableKeys(True);
end;
i:=MethodIndex(
if i=0 then exit;
DirectionGroup.ItemIndex:
KeyEdit.MaxLength:=
KeyEdit.Text:=String(
WayCountEdit.Value:=
DescMemo.Clear;
DescMemo.Lines.Append(
end;
procedure
TOptionsForm.
var
i: integer;
begin
If
(UsedMethodsBox.ItemIndex=-1)
(UsedMethodsBox.Items.
i:=MethodIndex(
if i=0 then exit;
UsedMethods[i].Direction:
end;
procedure
TOptionsForm.KeyEditExit(
var
i: integer;
begin
If
(UsedMethodsBox.ItemIndex=-1)
(UsedMethodsBox.Items.
Exit;
i:=MethodIndex(
if i=0 then exit;
StrPCopy(UsedMethods[i].
end;
procedure
TOptionsForm.WayCountEditExit(
var
i: integer;
begin
If
(UsedMethodsBox.ItemIndex=-1)
(UsedMethodsBox.Items.
Exit;
i:=MethodIndex(
if i=0 then exit;
UsedMethods[i].WayCount:=
end;
procedure TOptionsForm.FormClose(Sender: TObject;
var Action: TCloseAction);
var
i: integer;
begin
Action:=caHide;
for i:=1 to QolMethods do
begin
if Used[i] then
begin
if
StrLen(UsedMethods[i].Key)<
begin
ShowMessage(Methods[i].
Action:=caNone;
Exit;
end else
if
StrLen(UsedMethods[i].Key)>
begin
ShowMessage(Methods[i].
Action:=caNone;
Exit;
end;
end;
end;
end;
end.
unit
ProgressUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls,
StdCtrls;
type
TProgressForm = class(TForm)
Label1: TLabel;
PBOne: TProgressBar;
PBAll: TProgressBar;
Label2: TLabel;
private
{ Private declarations }
public
Current: integer;
procedure
UpdateProgress(fn: String;perc:integer;Cap:
procedure
InitProgress(qol:integer;Cap:
procedure EndProcess;
{ Public declarations }
end;
var
ProgressForm:
TProgressForm;
implementation
{$R *.DFM}
procedure TProgressForm.EndProcess;
begin
inc(current);
end;
procedure TProgressForm.UpdateProgress;
begin
ProgressForm.Caption:=
Label1.Caption:=Cap+fn;
PBOne.Position:=perc;
PBAll.Position:=100*
end;
procedure TProgressForm.InitProgress;
begin
Caption:=Cap;
Label1.Caption:='
PBOne.Position:=0;
PBOne.Max:=100;
PBAll.Position:=0;
PBAll.Max:=qol*100;
Current:=0;
end;
end.
unit
TestUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ActnList, ExtCtrls, ComCtrls, ToolWin, Grids, Outline, DirOutln,
Buttons,
ShellApi, Registry;
type
TMainForm = class(TForm)
Label1: TLabel;
RecurseBox: TCheckBox;
BitBtn1: TBitBtn;
StaticText1: TStaticText;
MainKey: TEdit;
BitBtn2: TBitBtn;
Open: TOpenDialog;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
files: TListBox;
procedure FileDrop(var Msg: TWMDropFiles); message WM_DROPFILES;
procedure AddCmdLine(var msg: TMessage); message WM_USER;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DoCommandLine(S: String);
procedure StopDblClick(Sender: TObject);
procedure GoDblClick(Sender: TObject);
procedure GenerateKey;
function DecodeKey: integer;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
private
{ Private declarations }
public
end;
var
MainForm: TMainForm;
Decode:
boolean;
implementation
uses
CodingUnit, OptionsUnit, ProgressUnit;
{$R
*.DFM}
procedure TMainForm.GenerateKey;
var
i,k,l: integer;
s: string;
begin
for i:=1 to QolMethods do
begin
If Used[i] then
begin
k:=random(9)+1;
s:=concat(s,Methods[i].
s:=concat(s,IntToStr(k));
l:=strlen(UsedMethods[i].
s:=concat(s,Format('%2d',
s:=concat(s,StrPas(
s:=concat(s,Format('%2d',
s:=concat(s,Format('%2d',
end;
end;
for i:=1 to length(s) do if s[i]=' ' then s[i]:='-';
MainKey.Text:=S;
end;
function TMainForm.DecodeKey;
var
i,k,l,t: integer;
s: string;
begin
Result:=0;
s:=MainKey.Text;
for i:=1 to length(s) do if s[i]='-' then s[i]:='0';
try
while s<>'' do
begin
t:=MethodByChar(s[1]);
Used[t]:=true;
delete(s,1,1);
k:=strtoint(copy(s,1,1));
delete(s,1,1);
l:=strtoint(copy(s,1,2))-
delete(s,1,2);
StrPCopy(UsedMethods[t].
delete(s,1,l);
UsedMethods[t].Direction:
delete(s,1,2);
UsedMethods[t].WayCount:=
delete(s,1,2);
end;
except
on E:Exception do Result:=1;
end;
end;
Procedure TMainForm.DoCommandLine(S: String);
var
i: integer;
tmp: string;
begin
System.CmdLine:=PChar(S);
tmp:=ParamStr(1);
if CompareText(tmp,'/D')=0 then
begin
// декодирование
Decode:=true;
StaticText1.Caption:='
MainKey.Color:=clWindow;
Информация о работе Защита информации от несанкционированного доступа