const XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47); //字符串加密用function Enc(Str:String):String;//字符加密函數 這是用的一個異或加密
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;
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;
Option Explicit
Const XorKey As String = "B2,09,AA,55,93,6D,84,47"Private Sub Form_Load()
Dim s1 As String, s2 As String
s1 = "abcdefgh"
s2 = Enc(s1)
MsgBox s2
s2 = Dec(s2)
MsgBox s2
End SubFunction Enc(iStr As String) As String '//字符加密函數 這是用的一個異或加密
Dim i As Integer, j As Integer, xk() As String
xk = Split(XorKey, ",")
For i = 1 To Len(iStr)
Enc = Enc + Replace(Format(Hex(Asc(Mid(iStr, i, 1)) Xor ("&H" & xk(j))), "@@"), " ", "0")
j = (j + 1) Mod 8
Next i
End Function
Function Dec(iStr As String) As String '//字符解密函數
Dim i As Integer, j As Integer, xk() As String
xk = Split(XorKey, ",")
For i = 1 To Len(iStr) Step 2
Dec = Dec + Chr(("&H" & Mid(iStr, i, 2)) Xor ("&H" & xk(j)))
j = (j + 1) Mod 8 ';
Next i
End Function