Einzelnen Beitrag anzeigen

Rudinii
(Gast)

n/a Beiträge
 
#7

AW: Caesar-Chiffre erweitern

  Alt 21. Feb 2016, 16:50
Sorry für den Spam aber ich habe ein Problem mit der Vigenere Verschlüsselung, sie funktioniert irgendwie absolut nicht so wie es soll. Kann mal jemand meiner Verschlüsselungsfunktion durchgucken und mir sagen wo mein Denkfehler liegt? ;(
Delphi-Quellcode:
function VigenereVerschluesseln(textInput:string; ViKey: String): String;
var
h,i:integer; //Zählvariable
tempForEncrypt1,tempForEncrypt2,tempForEncrypt3:Integer; //1 ist für den Klartext, 2 für den Schlüsseltext, 3 für den Geheimtext,

begin
SetLength(Result, Length(textInput));
textInput := UpperCase(textInput); //Hier wird der Text zu Großbuchstaben gemacht, da nicht zwischen klein und groß unterschieden wird
ViKey := UpperCase(ViKey);

for h := 1 to Length(ViKey) do
begin
if not (ViKey[h] in ['A'..'Z']) then
    raise Exception.CreateFmt('Schlüssel ungültig.', [ViKey]); //Falls der Schlüssel kein Buchstabe ist gibts nen Fehler
end;
repeat
ViKey := ViKey + ViKey;
until ViKey > textInput; //Das schlüsselwort wird solange hintereinandergesetzt bis es länger ist als der Klartext
                          // "ÜBerschuss" hier egal da die spätere Schleife vom Klartext ausgeht
for i := 1 to Length(textInput) do
begin
if textInput[i] in ['A'..'Z'] then
begin
tempForEncrypt1 := ord(textInput[i])-(ord('A')); //Stelle im Alphabet vom Klartextbuchstaben
tempForEncrypt2 := ord(ViKey[i])-(ord('A')); //Stelle im Alphabet vom Schlüsseltextbuchstaben
tempForEncrypt3 := (tempForEncrypt1 + tempForEncrypt2) mod 26; //Stelle im ALphabet des Geheimtextbuchstaben
Result[i] := chr(tempForEncrypt3 + (ord('A'))); //Erstmal die Stelle in der Ascitabelle ausrechnen, dann den passendeb Buchstaben als Ergebnis festlegen
end
else
begin Result[i] := textInput[i];
end;
end;


end;
EDIT: Hat er sich erledigt >.< habe beim Ausführen der Funktion, die beiden Parameter vertauscht

Geändert von Rudinii (21. Feb 2016 um 17:33 Uhr) Grund: HAT SICH ERLEDIGT
  Mit Zitat antworten Zitat