AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Sehr kleines Programm für eine RC4 Verschlüsselung
Thema durchsuchen
Ansicht
Themen-Optionen

Sehr kleines Programm für eine RC4 Verschlüsselung

Ein Thema von BigT · begonnen am 10. Mär 2008 · letzter Beitrag vom 10. Mär 2008
 
BigT

Registriert seit: 13. Dez 2006
10 Beiträge
 
#1

Sehr kleines Programm für eine RC4 Verschlüsselung

  Alt 10. Mär 2008, 14:01
Hi,
ich habe das Problem, dass ich es nicht schaffe ein Miniprogramm zu schreiben, dass ein kurzes Wort (welches in einer Editbox steht) mithilfe des RC4 Algorithmus in einen Code umzuwandeln.
Ich habe den Algorithmus schon im Forum gefunden, schaffe es aber nicht ihn einzubinden.

Ich hoffe ihr könnt mir hier helfen.
Bisher habe ich das aus dem Forum zusammengestellt.
Einige Sachen habe ich kommentiert und bei anderen habe ich drangeschrieben, was ich nicht verstehe.

Delphi-Quellcode:
type
  TRC4Context = record
    D: array[Byte] of Byte;
    I,J: Byte;
  end;

implementation

{$R *.dfm}


procedure RC4Init(var RC4: TRC4Context; const Key: String); // Erstellen der S-Box
var
  R,S,T,K: Byte;
  U,L: Integer;
begin
  L := Length(Key);
  with RC4 do
  begin
    I := 0; // die Zähler i und j werden am Anfang auf 0 gesetzt
    J := 0;
    for S := 0 to 255 do D[S] := S; // die S-Box wird linear aufgefüllt
    R := 0;
    U := 0;
    for S := 0 to 255 do
    begin
      if U < L then K := PByteArray(Key)[U] else K := 0; //Was bedeutet "PByteArray(Key)[U]"??
      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]; // Was bedeutet das?? Kann man das verständlich umschreiben? Denn ich kenne den Befehl nicht.
    end;
end;


procedure RC4Done(var RC4: TRC4Context);
begin
  FillChar(RC4, SizeOf(RC4), 0);
end;



procedure TForm1.Button1Click(Sender: TObject);
var
  x: TRC4Context; str1, str2, str3: string;
begin
  str1:=edit1.text; //hier soll die Verschlüsselung stattfinden
                                         //str1 soll hinein gegeben werden und in edit2 soll dann der codierte Schlüssel stehen.
 {RC4Init(x,'Passwort');                                        //Wie binde ich das ein?
  RC4Code(x, str1[1], str2[1], Length(str1)); // verschlüsseln
  RC4Done(x);    }


end;

end.
Vielen Dank im Voraus
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz