小工具整理

This commit is contained in:
Abin committed 2025-07-31 16:05:55 +08:00
commit 1011eb44e1
566 files changed
+267142

No files matched your search

@@ -0,0 +1,55 @@
{ XOR-BASE64 Encrypt Filename against a String Key }
const
KEY = 'My Secret Key'; // Set your key!
DECODE = False; // "True" or "False"
function XorEnDeCrypt(const S: String): String;
var
I, IK, Code: Integer;
begin
IK := 1;
Result := '';
for I := 1 to Length(S) do
begin
if IK > Length(KEY) then IK := 1;
Code := (Ord(S[I]) xor Ord(KEY[IK]));
Result := Result + Chr(Code);
IK := IK + 1;
end;
end;
procedure ReplaceChar(var S: String; Find, Replace: Char);
var
I: Integer;
begin
for I:=1 to Length(S) do
if S[I] = Find then
S[I] := Replace;
end;
function Encrypt(const S: WideString): String;
begin
Result := UTF8Encode(S);
Result := XorEnDeCrypt(Result);
Result := Base64Encode(Result);
ReplaceChar(Result, '/', '=');
end;
function Decrypt(const S: String): WideString;
var
Temp: String;
begin
Temp := S;
ReplaceChar(Temp, '=', '/');
Temp := Base64Decode(Temp);
Temp := XorEnDeCrypt(Temp);
Result := UTF8Decode(Temp);
end;
begin
if DECODE then
FileName := Decrypt(FileName)
else
FileName := Encrypt(FileName);
end.