unit password;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TFrmpwd = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
function encrypt_jia(s:string):String;
function encrypt_free(s:string):string;
{ Private declarations }
public
{ Public declarations }
end;var
Frmpwd: TFrmpwd;implementation{$R *.dfm}//加密函数
function TFrmpwd.encrypt_jia(s:string):String;
var
i,j,k: Integer;
s1: string;
begin
s1 := '';
j := Length(s);
for i := 1 to j do
begin
k := j * j - i * i + 3;
s1 := s1 + Chr(ord(s) + k);
end;
result := s1;
end;
//解密函数
function TFrmpwd.encrypt_free(s:string):String;
var
i,j,k: Integer;
s1: string;
begin
s1 := '';
j := Length(s);
for i := 0 to j do
begin
k := j * j - i * i + 3;
s1 := s1 + Chr(ord(s) - k);
end;
result := s1;
end;
//执行加密
procedure TFrmpwd.Button1Click(Sender: TObject);
var
ss,st: string;
begin
ss := Edit1.Text;
Edit2.Text := UTF8Encode(encrypt_jia(ss));
end;
//执行解密
procedure TFrmpwd.Button2Click(Sender: TObject);
var
ss:string;
begin
ss := Edit3.Text;
Edit4.Text := encrypt_free(ss);
end;end.测试的时候 显示的都是乱码,为什么?
12345678 加密后 龞龛龖龏龆齻齮齟
龞龛龖龏龆齻齮齟 解密后 鼙鼚鼝鼢鼩鼲鼽齊齙
求教大神
var
i,Len: integer;
C,H4,L4: Byte;
s: string;
begin
Len:=Length(Str);
s:='';
for i:=1 to Len do
begin
C:=Ord(Str[i]);
C:=C xor $A8;
H4:=(C and $F0) shr 4;
L4:=C and $0F;
C:=(L4 shl 4) or H4; s:=s+Chr(C);
end;
Result:=s;
end;function StrDeCrypt(Str: string): string; //解密字符串函数
var
i,Len: integer;
C,H4,L4: Byte;
s: string;
begin
Len:=Length(Str);
s:='';
for i:=1 to Len do
begin
C:=Ord(Str[i]);
H4:=(C and $F0) shr 4;
L4:=C and $0F;
C:=(L4 shl 4) or H4;
C:=C xor $A8; s:=s+Chr(C);
end;
Result:=s;
end;
如果是delphi7,在for循环里获取s[i]
var
Frmpwd: TFrmpwd;implementation{$R *.dfm}//加密函数
function TFrmpwd.encrypt_jia(s:String):String;
var
i,j,k: Integer;
s1: String;
begin
s1 := '';
j := Length(s);
for i := 1 to j do
begin
k := j * j - i * i + 3;
s1 := s1 + Chr(ord(s[i]) + k);
end;
result := s1;
end;//解密函数
function TFrmpwd.encrypt_free(s:String):String;
var
i,j,k: Integer;
s1: String;
begin
s1 := '';
j := Length(s);
for i := 1 to j do
begin
k := j * j - i * i + 3;
s1 := s1 + Chr(ord(s[i]) - k);
end;
result := s1;
end;//执行加密
procedure TFrmpwd.Button1Click(Sender: TObject);
var
ss: String;
begin
ss := Edit1.Text;
Edit2.Text :=string( UTF8Encode(encrypt_jia(ss)));
end;//执行解密
procedure TFrmpwd.Button2Click(Sender: TObject);
var
ss:String;
begin
ss := Edit2.Text;
Edit4.Text :=encrypt_free(ss);
end;end.