Создание демонстрационной версии

Автор работы: Пользователь скрыл имя, 09 Марта 2013 в 00:11, лабораторная работа

Описание работы

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

Файлы: 1 файл

Лабораторная работа.doc

— 74.50 Кб (Скачать файл)

Лабораторная  работа №1

Создание демонстрационной версии

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

 

program Project1;

uses

Forms,WINDOWS,Dialogs,sysutils,registry,

unit1 in 'unit1.pas' {Form1};

var

rgn:cardinal;

reg:tregistry;

n:integer;

{$R *.res}

begin

reg:=tregistry.Create;

with reg do begin

openkey('software',true);

openkey ('gashik',true);

if valueexists('max') then begin

n:=readInteger('max')-1;

if n>=0 then WriteInteger ('max',n);

end

else begin

n:=15;

WriteInteger('max',n);

end;

reg.Free;

if n>0 then begin

  Application.Initialize;

  Application.CreateForm(TForm1, Form1);

  with Form1.Canvas,Form1 do begin

  rgn:=CreateEllipticrgn(0,0,width,height);

  SetWindowRgn(Handle,rgn,true);

  end;

  Form1.Label2.Caption:=inttostr(n);

  Application.Run;

  end

  else

  ShowMessage('Программа заблокирована!!!');

  end;

end.

                                                       Лабораторная работа №2

Организация доступа  к проекту

  1. Создать проект , который  запускается при вводе пароля. При не правильном  вводе разрешается  ввести ещё три раза с соответствующими сообщениями. При первом запуске пароль заносится в системный реестр.
  2. Создать  форму для ввода данных пользователей (№ секции, имя пользователя, пароль, тип доступа 0-ограниченный доступ, 1-все права) ограничение организовать в виде элемента флажок. Обеспечить запись в ini файл.
  3. Создать проект который запрашивает данные пользователя, сравнивает их с данными из ini файла, определяет тип доступа и в зависимости от этого делает одну или две нопки доступными.

 

 

 

unit Unit1;

             interface

              uses

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

  Dialogs, StdCtrls, ExtCtrls, Mask;

               type

  TForm1 = class(TForm)

    Panel1: TPanel;

    Button1: TButton;

    Panel2: TPanel;

    MaskEdit1: TMaskEdit;

    Edit1: TEdit;

    Edit2: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Edit3: TEdit;

    Label4: TLabel;

    CheckBox1: TCheckBox;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Button2Click(Sender: TObject);

   

  private

    { Private declarations }

  public

    { Public declarations }

  end;

               var

  Form1: TForm1;

  passLim:integer;

              implementation

uses IniFiles;

const

IniFilename='Z:\Шадрин Максим\Безопасность ИС\ЛБ2(3)DemoIni.ini';

var Ini:TIniFile;

pr:integer;

             {$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Caption:=IntToStr(passLim);

if maskedit1.Text='parol' then panel2.Visible:=true

else

begin

passLim:=passLim+1;

  if passLim=3 then

    begin

      ShowMessage('попытки кончились');

      Button1.Enabled:=false;

    end

    else ShowMessage('Введите пароль еще раз');

 

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

passLim:=0;

end;

             procedure TForm1.Button2Click(Sender: TObject);

begin

if Edit1.Text='' then showmessage('Введите номер секции');

Ini:=TIniFile.Create(IniFileName);

Ini.WriteString(Edit1.Text,'User',Edit2.Text);

Ini.WriteString(Edit1.Text,'Password',Edit3.Text);

if CheckBox1.Checked then pr:=1 else pr:=0;

Ini.WriteInteger(Edit1.Text,'Prava',pr);

Ini.Destroy;

             end;

             end;

procedure TForm2.Button1Click(Sender: TObject);

begin

if edSection.Text=''then showmessage('Введите  название секции');

Ini:=TIniFile.Create(IniFileName);

Ini.WriteString(edSection.Text,'User', edUser.Text);

Ini.Writestring(edSection.Text,'Password',edPassword.Text);

if cbprava.Checked then pr:=1 else pr:=0;

Ini.WriteInteger(edSection.Text,'Prava',pr);

Ini.Destroy;

  Form2.Show;

end;

end;

end.

object Form1:TForm1

Left=295;

Top=185;

Width=381;

Height=247;

Caption='Работа с файлом  инициации';

color=clBtnFace;

Font.Charset=DEFAULT_CHARSET

Font.Color=clWindowText

Font.Height=-11

Font.Name='MS Sans Serif'

Font.Style=[]

OldCreateOrder=False

PixelsPerInch=96

TextHeight=13

object Label1:TLabel

Left=30

Top=16

Width=92

Height=13

Caption='Название  секции'

end

object Label2:TLabel

Left=30

Top=48

Width=73

Height=13

Caption='Пользователь'

end

object Label3:TLabel

Left=30

Top=80

Width=38

Height=13

Caption='Пароль'

tnd

object Label5:TLabel

Left=30

Top=144

Width=52

Height=13

Caption='Все права'

end

object edSection:TEdit

Left=200

Top=16

Width=121

Height=21

TabOrder=0

end

object eduser:TEdit

Left=200

Top=48

Width=121

Height=21

TabOrder=1

end

object edpassword:TEdit

Left=200

Top=80

Width=121

Height=21

TabOrder=2

end

object cbprava:TCheckBox

Left=200

Top=144

Width=97

Height=17

TabOrder=3

end

object Button1:TButton

Left=72

Top=184

Width=75

Height=25

Caption='Запись'

TabOrder=4

OnClick=Button1Click

end

              end.

 

 

 

 

 

 

 

 

Лабораторная  работа №3

Шифрование  и дешифрование

Создать текстовый файл. Создать проект который читает текст файла и выводит данные в memo1  и шифрует выводя в memo2.

Метод шифрования «Замена»: к коду каждого символа  прибавляем заданное число и по новому коду выводим новый символ.

 

 

unit Unit1;

              interface

              uses

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

  Dialogs, StdCtrls;

                  type

  TForm1 = class(TForm)

    Button1: TButton;

    Memo1: TMemo;

    Memo2: TMemo;

    Button2: TButton;

    Button3: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

               var

  Form1: TForm1;

               const

  StartKey = 981;

  MultKey   = 12674;

  AddKey   = 35891;

             function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;

function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;

           implementation

            {$R *.dfm}

{$R-}

{$Q-}

             function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;

var

  I : Byte;

begin

  Result := '';

  for I := 1 to Length(InString) do

  begin

    Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));

    StartKey := (Byte(Result[I]) + StartKey) * MultKey + AddKey;

  end;

end;

            function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;

var

  I : Byte;

begin

  Result := '';

  for I := 1 to Length(InString) do

  begin

    Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));

    StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey;

  end;

end;

{$R+}

{$Q+}

           procedure TForm1.Button1Click(Sender: TObject);

             begin

Memo2.Text:=Encrypt(Memo1.Text,StartKey,MultKey,AddKey);

end;

              procedure TForm1.Button2Click(Sender: TObject);

begin

Memo1.Text:=Decrypt(Memo2.Text,StartKey,MultKey,AddKey);

end;

             procedure TForm1.Button3Click(Sender: TObject);

begin

close;   end;   end.

Негосударственное общеобразовательное учреждение

среднего специального образования

Костромской технологический  техникум

 

 

 

 

 

 

 

 

 

 

Отчёт

По безопасности ИС

 

 

 

 

 

 

 

 

Выполнил студент группы 4А1:

Шадрин Максим


Информация о работе Создание демонстрационной версии