字符串加密解密(100分)

  • 主题发起人 主题发起人 栋栋
  • 开始时间 开始时间

栋栋

Unregistered / Unconfirmed
GUEST, unregistred user!
100分求字符串加密解密函数
要求
不带回车或换行
不带SQL关键字符(如%,'等等)

 

function TransChar(AChar: Char): Integer;
begin
if AChar in ['0'..'9'] then
Result := Ord(AChar) - Ord('0')
else
Result := 10 + Ord(AChar) - Ord('A');
end;

function StrToHex(AStr: string): string;
var
I : Integer;
Tmp: string;
begin
Result := '';
For I := 1 to Length(AStr) do
begin
Result := Result + Format('%2x', [Byte(AStr)]);
end;
I := Pos(' ', Result);
While I <> 0 do
begin
Result := '0';
I := Pos(' ', Result);
end;
end;

function HexToStr(AStr: string): string;
var
I : Integer;
CharValue: Word;
begin
Result := '';
For I := 1 to Trunc(Length(Astr)/2) do
begin
Result := Result + ' ';
CharValue := TransChar(AStr[2*I-1])*16 + TransChar(AStr[2*I]);
Result := Char(CharValue);
end;
end;

function Encrypt(const S: String
Key: Word): String;
var
I : Integer;
begin
Result := S;
for I := 1 to Length(S) do
begin
Result := char(byte(S) xor (Key shr 8));
Key := (byte(Result) + Key) * 11 + 12;
if Result = Chr(0) then
Result := S;
end;
Result := StrToHex(Result);
end;

function Decrypt(const S: String
Key: Word): String;
var
I: Integer;
S1: string;
begin
S1 := HexToStr(S);
Result := S1;
for I := 1 to Length(S1) do
begin
if char(byte(S1) xor (Key shr 8)) = Chr(0) then
begin
Result := S1;
Key := (byte(Chr(0)) + Key) * 11 + 12
//±&amp;pound;&amp;Ouml;¤Key&amp;micro;&amp;Auml;&amp;Otilde;&amp;yacute;&amp;Egrave;·&amp;ETH;&amp;Ocirc;
end
else
begin
Result := char(byte(S1) xor (Key shr 8));
Key := (byte(S1) + Key) * 11 + 12;
end;
end;
end;
 
栋栋,我有现成的加密算法,你要吗?
 
i have the source 2
 
有没有des的?
 
//不带回车或换行
//不带SQL关键字符(如%,'等等)
这样的算法多如牛毛啊!
 
我也想要一份啊:)

哪个有给我一份好不好:)

mouse_delphi@163.com[:D]
 
这种算法太多了,还有什么要求吗?
 
email 给我!

webmaster@mychangshu.com
 
接受答案了.
 

Similar threads

S
回复
0
查看
559
swish
S
回复
0
查看
848
不得闲
回复
0
查看
1K
不得闲
S
回复
0
查看
636
swish
S
回复
0
查看
978
不得闲
后退
顶部