AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Caesar-Chiffre erweitern

Ein Thema von Rudinii · begonnen am 19. Feb 2016 · letzter Beitrag vom 22. Feb 2016
 
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
 


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 06:15 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