Autor Beitrag
Maik5678
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Sa 30.09.06 15:07 
Guten Tag zusammen,

ich habe gerade ein Programm für die Cäsar-Verschlüsselung fertig programmiert und es funktioniert auch einwandfrei.

(Zur Erinnerung: dabei wird wenn mal als Schlüssel "B" angibt, das gesamte Alphabet um 1 verschoben, bei D wird es um drei buchstaben verschoben usw. so wird aus HALLO bei dem Schlüssel C "IBMMP")

Nun wollte ich das Programm aber gerne noch erweitern, sodass es auch die Vigen`re Verschlüsselung beherrscht.

Die funktioniert so:
Man gibt als Schlüssel nicht mehr nur ein Buchstaben ein, sondern ein ganzes Wort:

Zum Beispiel, der Schlüssel sei "INFORMATIK"
-> Der zu verschlüsselnde Text ist "DIESER TEXT"

Dann verwendet dieses Verfahren für jeden einzelnen Buchstaben die Cäsar Verschlüsselung, dass heißt, er verschlüsselt das "D" mit der "I-Verschiebung"; das "I" mit "N" usw. usw.

Ich geb euch hier mal meine einfache Cäsar Verschlüsselung als Code:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
procedure TForm1.BtVerschlClick(Sender: TObject);
  var z,i,j, x2,x3, letters:integer; x4:char;
begin
key :=  EdSch.Text;
   eingabe := uppercase(EdEingabe.Text);

     x := ord(key[1]) - 65; // Ich denke mal hier muss man eine weitere Schleife einbauen, da der Key nun nicht mehr EIN buchstabe sein soll, sondern ein richtiges Wort

for i := 1 to length(eingabe) do
begin

         // weitere Variablen

    x2 := ord(eingabe[i]);  //Ord-Wert

                 if x2 <> 32 // Leerzeichen = ASCII 32
    then begin

      x3 := x2+x; // Ord-Wert plus gewählte Verschiebung
      if x3>90 then
      x3 := x3-26;

        x4 := Chr(x3);            //Char Wert der gesamten Rechnung

          eingabe[i] := x4;
          end;
            end;


                 EdEingabe2.Text := eingabe;
                 Wechseln.Position := x;

end;


Wie muss ich diesen Code nun verändern, um ein Vigenère Verfahren draus zu machen?

Vielen Dank für eure Hilfe!!!!
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 30.09.06 15:53 
Maik5678 Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Sa 30.09.06 16:47 
Hm ja aber ich weiß nicht genau wie ich das in meinen obigen Code einbauen soll, ohne diesen komplett zu verändern.

Könnt ihr mir da nicht direkt weiterhelfen?