一种简单的字符串加密和解密算法
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47);
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function Encrypt(Str: string): string;
function Decrypt(Str: string): string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.Encrypt(Str: string): string;//加密算法
var
i,j:Integer;
begin
Result := '';
j := 0;
for i := 1 to Length(Str) do
begin
Result := Result + IntToHex(Byte(Str[i]) xor XorKey[j],2);
j := (j + 1) mod 8;
end;
end;
function TForm1.Decrypt(Str: string): string;//解密算法
var
i,j:Integer;
begin
Result := '';
j := 0;
for i := 1 to Length(Str) div 2 do
begin
Result := Result + Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
j := (j + 1) mod 8;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text :=Encrypt(Edit1.Text);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := Decrypt(Edit2.Text);
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47);
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function Encrypt(Str: string): string;
function Decrypt(Str: string): string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.Encrypt(Str: string): string;//加密算法
var
i,j:Integer;
begin
Result := '';
j := 0;
for i := 1 to Length(Str) do
begin
Result := Result + IntToHex(Byte(Str[i]) xor XorKey[j],2);
j := (j + 1) mod 8;
end;
end;
function TForm1.Decrypt(Str: string): string;//解密算法
var
i,j:Integer;
begin
Result := '';
j := 0;
for i := 1 to Length(Str) div 2 do
begin
Result := Result + Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
j := (j + 1) mod 8;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text :=Encrypt(Edit1.Text);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := Decrypt(Edit2.Text);
end;
end.