function Encrypt(tsStr : String; tnSafecode:Integer):String;
var
i,l : Integer ;
ii,ll : Integer ;
aEncode : Array of Char ;
begin
ll := 128 ;
setlength(aEncode,ll);
ii := 0 ;
for i := 0 to ll - 1 do
begin
case i of
0..32: ;
34,39: ;
250..255 : ;
else ;
aEncode[ii] := chr(i);
ii := ii +1
end;
end;
SetLength(aEncode,ii);
Result := '';
tsStr:=tsStr+'********************';
tsStr := copy(tsStr,1,20);
l := Length(tsStr);
for i := 1 to l do
begin
tnSafecode := tnSafecode + i;
Result := Result + aEncode[(Integer(tsStr[i])* tnSafecode * tnSafecode ) mod ii];
end;
end;
这是加密函数,哪位大侠写一下解密的函数。
var
i,l : Integer ;
ii,ll : Integer ;
aEncode : Array of Char ;
begin
ll := 128 ;
setlength(aEncode,ll);
ii := 0 ;
for i := 0 to ll - 1 do
begin
case i of
0..32: ;
34,39: ;
250..255 : ;
else ;
aEncode[ii] := chr(i);
ii := ii +1
end;
end;
SetLength(aEncode,ii);
Result := '';
tsStr:=tsStr+'********************';
tsStr := copy(tsStr,1,20);
l := Length(tsStr);
for i := 1 to l do
begin
tnSafecode := tnSafecode + i;
Result := Result + aEncode[(Integer(tsStr[i])* tnSafecode * tnSafecode ) mod ii];
end;
end;
这是加密函数,哪位大侠写一下解密的函数。
解决方案 »
- 怎样增加一个OnColorChange的属性?
- EmbeddedWB控件安装的问题?
- 数据库面存的是 20040001 23:11:15 我只想取前面的日期来和我的变量比量,哪个在前哪个在后?怎么 做?
- 鼠標不是在FORM上,FORM也不是當前激活進程...
- adoquery调用insert语句错误的问题,在线急等!
- 如何判断一个table当前的操作状态?
- 我用SQLConnection連接Sql server2000時,出現Sql Error:Error mapping failed!
- qreport控件作动态报表的紧急问题!!!
- Delphi开发 短信群发系统,有兴趣的一起讨论讨论!
- form动态创建时,怎么触发button的单击事
- 如何使用Scanline----------把一个图片按要求分成若干个图片?
- delphi 中webbrowser 屏蔽脚本错误提示
用92个符号表示256个可能,而且前后没有联系,这将导致反推得到多个结果.
f(x) = y; x->y , y->x1,x2,x3...得到多个x.
随便提一下,这函数效率很低..
ii 是 93 吧,也就是除数
余数可以通过加密后的字符来查表获得,也就是该字符在密码表中的索引然后就开始推商吧,1..2..3..4...除以tnSafecode得到的结果<=255的话就行了
所以这里的字符串一定要是AnsiString类型的
假设 tnSafecode =1 , tsStr[1] = #1 或者 #94 或者 #187
得到的结果: 索引都是1,Result[1] = aEncode[1] = #35
解码的时候,#35解码后到底是 #1还是#94还是#187?
一位有2种或者3种可能,20位总共有多少个结果? 2^20至2^30种可能,这个