'加密函数
Private Function Encode(Txt As String) As String
Dim r As String, t As String
Dim i As Long
Dim k As Integer
Dim j As Long
Randomize Timer
For i = 1 To Len(Txt)
k = Asc(Mid(Txt, i, 1))
r = Hex(k)
r = String(4 - Len(r), "0") & r
t = ""
For j = 1 To 4
aa = Rnd()
k = CDec("&h" & Mid(r, j, 1)) + Int(Rnd() * 6) * 16 + 32
t = t & Chr(k)
Next j
Encode = Encode & t
Next i
End Function'解密函数
Private Function Decode(Code As String) As String
Dim i As Long, j As Long, y As Long
Dim k As Integer
Dim r As String, t As String
For i = 1 To Len(Code) Step 4
r = Mid(Code, i, 4)
t = ""
For j = 1 To 4
k = (Asc(Mid(r, j, 1)) - 32) Mod 16
t = t & Hex(k)
Next j
y = CDec("&h" & t)
If y > 32786 Then y = y - 65536
Decode = Decode & Chr(y)
Next i
End Function
Private Function Encode(Txt As String) As String
Dim r As String, t As String
Dim i As Long
Dim k As Integer
Dim j As Long
Randomize Timer
For i = 1 To Len(Txt)
k = Asc(Mid(Txt, i, 1))
r = Hex(k)
r = String(4 - Len(r), "0") & r
t = ""
For j = 1 To 4
aa = Rnd()
k = CDec("&h" & Mid(r, j, 1)) + Int(Rnd() * 6) * 16 + 32
t = t & Chr(k)
Next j
Encode = Encode & t
Next i
End Function'解密函数
Private Function Decode(Code As String) As String
Dim i As Long, j As Long, y As Long
Dim k As Integer
Dim r As String, t As String
For i = 1 To Len(Code) Step 4
r = Mid(Code, i, 4)
t = ""
For j = 1 To 4
k = (Asc(Mid(r, j, 1)) - 32) Mod 16
t = t & Hex(k)
Next j
y = CDec("&h" & t)
If y > 32786 Then y = y - 65536
Decode = Decode & Chr(y)
Next i
End Function
解决方案 »
- SQL语句问题???
- 领导要我把他做的组件做成activeX控件,又碰见问题了,大家帮忙看看!
- 如何得到鼠标的位置,及当前界面上某个控件的位置
- 如何在IIS上发布intraweb写的网站
- 我想把label的caption字竖写出来,该如何??
- 如何实现单击构件以外Form上任意区域,释放掉构件?
- [求助]用delphi代码建立dbf表,断电损坏、断电后之前保存的数据丢失。
- XE5如何调用ANDROID的标准API?
- 怎样去除delphi数据库登陆对话框(Database login)?
- 如何实现用拼音首字符序列对数据库某字段检索?
- 路过..........................
- 有关于数学模型Y*Exp(x/T0)=A0+B*Exp[(1/T0-1/T)*x]求解算法?
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) do
begin
Result:=Result+IntToHex(Byte(Str[i]) xor XorKey[j],2);
j:=(j+1) mod 8;
end;
end;function Dec(Str:String):String;
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) div 2 do
begin
Result:=Result+Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
j:=(j+1) mod 8;
end;
end;
Function Encode(Txt : WideString) : WideString;
var
r, t : WideString;
i : LongInt;
k : Word;
j : LongInt;
begin
Result := '';
Randomize();
For i := 1 To Length(Txt) do begin
k := Word(Txt[I]);
r := IntToHex(k,4);
t := '';
For j := 1 To 4 do begin
//aa := Random()
k := StrToInt('$' + Copy(r, j, 1)) + Random(6) * 16 + 32;
t := t + WideChar(k)
end;
Result := Result + t;
end;
End;//解密函数
Function Decode(Code : WideString) : WideString;
var
i, j, y : LongInt;
k : Word;
r, t : WideString;
begin
I := 1;
Result := '';
while I < Length(Code) do begin
r := Copy(Code, i, 4);
t := '';
For j := 1 To 4 do begin
k := (Word(r[j]) - 32) Mod 16;
t := t + IntToHex(k,1);
end;
y := StrToInt('$' + t);
If y > 32786 Then y := y - 65536;
Result := Result + WideChar(y);
Inc(I, 4);
end;
End;
Function Encode(Txt : WideString) : AnsiString;
var
r, t : AnsiString;
i : LongInt;
k : Word;
j : LongInt; str: AnsiString;
begin
Result := '';
Randomize();
For i := 1 To Length(Txt) do begin
str := Txt[I];
SetLength(R,Length(str) * 2);
BinToHex(PAnsiChar(str),PAnsiChar(R),Length(str) ); r := Copy('00',1,4-Length(R))+R;
t := '';
For j := 1 To 4 do begin
k := StrToInt('$' + Copy(r, j, 1)) + Random(6) * 16 + 32;
t := t + AnsiString(Char(k));
end;
Result := Result + t;
end;
End;//解密函数
Function Decode(Code : AnsiString) : AnsiString;
var
i, j : LongInt;
y: LongWord;
k : Word;
r, t : AnsiString;
C: array[0..3] of AnsiChar;
begin
I := 1;
Result := '';
while I < Length(Code) do begin
r := Copy(Code, i, 4);
t := '';
For j := 1 To 4 do begin
k := (Word(r[j]) - 32) Mod 16;
t := t + IntToHex(k,1);
end;
y := Word(StrToInt('$' + t));
HexToBin(Pointer(t),PAnsiChar(@Y),4);
Move(y,c,SizeOf(Y));
if C[0] = #0 then begin
Result := Result + StrPas(PAnsiChar(@C[1]));
end else begin
Result := Result + StrPas(PAnsiChar(@C[0]));
end;
Inc(I, 4);
end;
End;