shmia hat mal eine kleine XOR-Verschlüsselung gepostet:
Delphi-Quellcode:
// 20.02.2003/shmia
function SimpleCryptString(const S, Key: string): string;
var
i, j: Integer;
C: Byte;
P: PByte;
begin
SetLength(Result, Length(S));
P := PByte(Result);
j := 1;
for i := 1 to Length(S) do
begin
C := Ord(S[i]);
C := C xor Ord(Key[j]);
P^ := C;
Inc(P);
Inc(j);
if j > Length(Key) then
j := 1;
end;
end;
Eine XOR-Verschlüsselung ist nicht sehr sicher. Also nicht zu Empfehlen für sehr sensible Daten.
Weil bei obiger Routine auch nicht druckbare Zeichen herauskommen, empflieht
shmia nach dem Verschlüsseln den Text noch umzuwandeln mit folgenden Funktionen:
Delphi-Quellcode:
{**************************************************************************
* NAME: StringToHexStr
* DESC: Konvertiert einen String in eine hexadezimale Darstellung
*************************************************************************}
function StringToHexStr(const value:string):string;
begin
SetLength(Result, Length(value)*2); // es wird doppelter Platz benötigt
if Length(value) > 0 then
BinToHex(PChar(value), PChar(Result), Length(value));
end;
{**************************************************************************
* NAME: HexStrToString
* DESC: Dekodiert einen hexadezimalen String
*************************************************************************}
function HexStrToString(const value:string):string;
begin
SetLength(Result, Length(value) div 2); // es wird halber Platz benötigt
if Length(value) > 0 then
HexToBin(PChar(value), PChar(Result), Length(value));
end;