function Encry(str: string): string;
var
I,n: Integer;
begin
if Length(str) > 0 then
begin
for I := 1 to Length(str) do
begin
n:=Integer(str[I]) xor (i);
str[I] := Char(n);
end;
end ;
Result := str;
end;
用了以上代码会出现回车换行空格制表符等,如何去掉这些
var
I,n: Integer;
begin
if Length(str) > 0 then
begin
for I := 1 to Length(str) do
begin
n:=Integer(str[I]) xor (i);
str[I] := Char(n);
end;
end ;
Result := str;
end;
用了以上代码会出现回车换行空格制表符等,如何去掉这些
var
P: PByte;
I, Len: Integer;
begin
P := @Str[1];
Len := Length(Str);
for I := 1 to Len do
begin
P^ := P^ xor I;
Inc(P);
end;
Result := Str;
end;
密文 := HTTPEncode(Encry(明文));解密:
明文 := Encry(HTTPDecode(密文));
或base64,则长度没增加那么多
比方说
abcd 的MD5值是:b8ad396d6383bb1715a786dc8b3a779a
你可以在获取这个值时,再在那个MD5值中截取一个“源码”的长度
即可,这个可以“增强密码的保密性”,但是MD5值是不可“逆”的
function Encry(str: string): string;
var
I,n: Integer;
begin
if Length(str) > 0 then
begin
for I := 1 to Length(str) do
begin
n:=Integer(str[I]) xor (i);
if (n=13) or (n=10) then
str[I]:=char(n+2); //跳过回车,换行
else str[I] := Char(n);
end;
end ;
Result := str;
end;