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:
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; for i := 1 to length(eingabe) do begin
x2 := ord(eingabe[i]); if x2 <> 32 then begin
x3 := x2+x; if x3>90 then x3 := x3-26;
x4 := Chr(x3); 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!!!!