大家有没有好的加密方法,如加密‘293b-15d9’。最好显示的不是乱码。 大家有没有好的加密方法,如加密‘293b-15d9’。最好显示的不是乱码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Function EncrypKey (Src:String; Key:String):string;var KeyLen :Integer; KeyPos :Integer; offset :Integer; dest :string; SrcPos :Integer; SrcAsc :Integer; Range :Integer;begin KeyLen:=Length(Key); if KeyLen = 0 then key:='Think Space'; KeyPos:=0; Range:=256; Randomize; offset:=Random(Range); dest:=format('%1.2x',[offset]); for SrcPos := 1 to Length(Src) do begin SrcAsc:=(Ord(Src[SrcPos]) + offset) MOD 255; if KeyPos < KeyLen then KeyPos:= KeyPos + 1 else KeyPos:=1; SrcAsc:= SrcAsc xor Ord(Key[KeyPos]); dest:=dest + format('%1.2x',[SrcAsc]); offset:=SrcAsc; end; Result:=Dest;end;Function UncrypKey (Src:String; Key:String):string;var KeyLen :Integer; KeyPos :Integer; offset :Integer; dest :string; SrcPos :Integer; SrcAsc:Integer; TmpSrcAsc :Integer;begin KeyLen:=Length(Key); if KeyLen = 0 then key:='Think Space'; KeyPos:=0; offset:=StrToInt('$'+ copy(src,1,2)); SrcPos:=3; repeat try SrcAsc:=StrToInt('$'+ copy(src,SrcPos,2)); except end; if KeyPos < KeyLen Then KeyPos := KeyPos + 1 else KeyPos := 1; TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]); if TmpSrcAsc <= offset then TmpSrcAsc := 255 + TmpSrcAsc - offset else TmpSrcAsc := TmpSrcAsc - offset; dest := dest + chr(TmpSrcAsc); offset:=srcAsc; SrcPos:=SrcPos + 2; until SrcPos >= Length(Src); Result:=Dest;end; delphi 百度空间验证码如何获取 如何判断某热键已被注册 小問題 : 關於Edit輸入框 异常处理出错EOleException 如何判断一个Form是否创建? 一个偶然的发现 给出一段VB6的代码,谁能帮转成DELPHI6的,给全分!! 诚意寻踏实有经验技术人员入股 大津法或迭代法对灰度图像二值化 关于delphi数组问题 谁来试一下 动态生成的tabsheet及richedit的问题!
var
KeyLen :Integer;
KeyPos :Integer;
offset :Integer;
dest :string;
SrcPos :Integer;
SrcAsc :Integer;
Range :Integer;
begin
KeyLen:=Length(Key);
if KeyLen = 0 then
key:='Think Space';
KeyPos:=0;
Range:=256; Randomize;
offset:=Random(Range);
dest:=format('%1.2x',[offset]);
for SrcPos := 1 to Length(Src) do
begin
SrcAsc:=(Ord(Src[SrcPos]) + offset) MOD 255;
if KeyPos < KeyLen then
KeyPos:= KeyPos + 1 else KeyPos:=1;
SrcAsc:= SrcAsc xor Ord(Key[KeyPos]);
dest:=dest + format('%1.2x',[SrcAsc]);
offset:=SrcAsc;
end;
Result:=Dest;
end;Function UncrypKey (Src:String; Key:String):string;
var
KeyLen :Integer;
KeyPos :Integer;
offset :Integer;
dest :string;
SrcPos :Integer;
SrcAsc:Integer;
TmpSrcAsc :Integer;
begin
KeyLen:=Length(Key);
if KeyLen = 0 then
key:='Think Space';
KeyPos:=0;
offset:=StrToInt('$'+ copy(src,1,2));
SrcPos:=3;
repeat
try
SrcAsc:=StrToInt('$'+ copy(src,SrcPos,2));
except end;
if KeyPos < KeyLen Then
KeyPos := KeyPos + 1
else
KeyPos := 1;
TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]);
if TmpSrcAsc <= offset then
TmpSrcAsc := 255 + TmpSrcAsc - offset
else
TmpSrcAsc := TmpSrcAsc - offset;
dest := dest + chr(TmpSrcAsc);
offset:=srcAsc;
SrcPos:=SrcPos + 2;
until SrcPos >= Length(Src);
Result:=Dest;
end;