Schau mal, nachfolgender Code ist die RC4 Verschlüsselung. Sie gilt als sicher und ich will dir mal zeigen wieviel Aufwand sie im Source darstellt. Schnell wird ersichtlich, das im Gegensatz zu deiner sehr unsicheren Methode, eine starke Verschlüsselung NICHT zwangsläufig auch aufwendig sein muß.
Delphi-Quellcode:
type
TRC4Context = record
D: array[Byte] of Byte;
I,J: Byte;
end;
procedure RC4Init(var RC4: TRC4Context; const Key: String);
var
R,S,T,K: Byte;
U,L: Integer;
begin
L := Length(Key);
with RC4 do
begin
I := 0;
J := 0;
for S := 0 to 255 do D[S] := S;
R := 0;
U := 0;
for S := 0 to 255 do
begin
if U < L then K := PByteArray(Key)[U] else K := 0;
Inc(U);
if U >= L then U := 0;
Inc(R, D[S] + K);
T := D[S];
D[S] := D[R];
D[R] := T;
end;
end;
end;
procedure RC4Code(var RC4: TRC4Context; const Source; var Dest; Count: Integer);
var
S: Integer;
T: Byte;
begin
with RC4 do
for S := 0 to Count -1 do
begin
Inc(I);
T := D[I];
Inc(J, T);
D[I] := D[J];
D[J] := T;
Inc(T, D[I]);
TByteArray(Dest)[S] := TByteArray(Source)[S] xor D[T];
end;
end;
procedure RC4Done(var RC4: TRC4Context);
begin
FillChar(RC4, SizeOf(RC4), 0);
end;
Gruß Hagen