Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование от Судьи [www.del5.da.ru] Выпуск от 29/04/2002 года


Информационный Канал Subscribe.Ru - www.lycos.ru


- От Судьи -

 

- Основное месторасположение [http://del5.da.ru]

- Зеркало сайта [http://del50.by.ru]

- Mailto: [wadim274@permonline.ru]

 

Доброго времени суток, господа коллеги!

*****************************************

 

 

================================================================================

Сегодня мы поговорим о кодирование информации. Я представляю один очень даже не плохой алгоритм кодирование,

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

вышлю второй алгоритм кодирования информации. Если у кого есть собственный алгоритм, прошу пришлите мне по e-mail.

 

А вот и исходник:

---------------------

unit UCrypt;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
OD: TOpenDialog;
Label3: TLabel;
eKey: TEdit;
btnAsm: TButton;
btnPas: TButton;
TimeAsm: TLabel;
TimePas: TLabel;
procedure btnAsmClick(Sender: TObject);
procedure btnPasClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnAsmClick(Sender: TObject);
var
f:TMemoryStream;
i:Integer;
l:Byte;
s,k:PChar;
t:TTime;
begin
l:=Length(eKey.Text);
if l=0 then exit;
GetMem(k,l+1);
StrPCopy(k,eKey.Text);
OD.InitialDir:=ExtractFilePath(Application.ExeName);
if OD.Execute then
begin
f:=TMemoryStream.Create;
try
f.LoadFromFile(OD.FileName);
i:=f.Size;
GetMem(s,i+1);
f.Position:=0;
f.ReadBuffer(s^,i);
t:=Time;
//----------------------------------------------------
asm
PUSH EDI
PUSH EDX
PUSH EBX
PUSH CX
MOV EDI,&s
MOV EDX,&i
@L1: MOV EBX,&k
MOV CL,&l
@L2: MOV AL,[EBX]
XOR AL,[EDI]
XOR AL,$55
MOV [EDI],AL
INC EBX
INC EDI
DEC EDX
JZ @L3
DEC CL
JNZ @L2
JMP @L1
@L3: POP CX
POP EBX
POP EDX
POP EDI
end;
//----------------------------------------------------
t:=Time-t;
TimeAsm.Caption:=FormatDateTime('hh:nn:ss:zzz',t);
f.Position:=0;
f.WriteBuffer(s^,i);
f.SaveToFile(OD.FileName+'.crypt');
finally
f.Free;
FreeMem(k);
FreeMem(s);
end;
end;
end;

procedure TForm1.btnPasClick(Sender: TObject);
var
f:TMemoryStream;
m,j,i:Integer;
l:Byte;
s,k:PChar;
t:TTime;
begin
l:=Length(eKey.Text);
if l=0 then exit;
GetMem(k,l+1);
StrPCopy(k,eKey.Text);
OD.InitialDir:=ExtractFilePath(Application.ExeName);
if OD.Execute then
begin
f:=TMemoryStream.Create;
try
f.LoadFromFile(OD.FileName);
i:=f.Size;
GetMem(s,i+1);
f.Position:=0;
f.ReadBuffer(s^,i);
m:=0;
t:=Time;
//----------------------------------------------------
for j:=0 to i-1 do
begin
s[j]:=Char(Byte(s[j])xor Byte(k[m])xor $55);
Inc(m);
if m=l then m:=0;
end;
//----------------------------------------------------
t:=Time-t;
TimePas.Caption:=FormatDateTime('hh:nn:ss:zzz',t);
f.Position:=0;
f.WriteBuffer(s^,i);
f.SaveToFile(OD.FileName+'.crypt');
finally
f.Free;
FreeMem(k);
FreeMem(s);
end;
end;
end;

end.

================================================================================

 

Новости нашего сайта:

В данный момент новостей нет...

Ссылки на дружественные сайты:

- www.sourses.ru - Исходные тексты программ, огромное кол-во!

- www.delphi4all.narod.ru - хороший сайт

- www.chertenok.km.ru - очень хороший сайт по DELPHI

На последок:

- Анекдот

Ромашка и василек цветут на лесной поляне.
- Ромашка, ты меня любишь?
- Люблю.
- А ты меня хочешь?
- Хочу.
- Скорей бы эти пчелы прилетели!


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное