小工具整理
This commit is contained in:
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.
|
||||
Reference in new issue
Block a user