Einzelnen Beitrag anzeigen

Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Programm zur Verschlüsselung

  Alt 29. Mai 2007, 09:42
Da sollte es schon einiges im Forum geben

extreme einfach:
Delphi-Quellcode:
function Codestr (Text:String; PW:Byte): String;//erzeugt steuerzeichen nur in hexform in ini's schreiben
var
  s: String;
  i: Integer;
begin
  If PW > 32 then PW:=32;
  If PW < 1 then PW:=1;
  // Kodieren
  s:=Text;
  for i:=1 to length(s) do
    s[i]:=char(PW Xor Ord(s[i]));
    result := s;
end; {Codestr}

viel besser RC4: (glaube ist von Hagen)

Delphi-Quellcode:
function Codestr (Text, PW:String): String;
var
  x: TRC4Context;
  str2: string;
begin
  setLength(str2,length(text));
  _RC4Init(x,PW); // Init
  _RC4Code(x, text[1], str2[1], Length(text)); // vers und entchlüsseln
  FillChar(x, SizeOf(x), 0); // Done // war eigene procedure
  result := str2;
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;
EDIT: eigentlich hätte ich nur auf die Suche versweisen sollen/müssen ....
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat