AGB  ·  Datenschutz  ·  Impressum  







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

Entschluesselungsalgorithmus

Ein Thema von Noris · begonnen am 26. Okt 2010 · letzter Beitrag vom 31. Okt 2010
 
fui-tak

Registriert seit: 24. Okt 2008
117 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Entschluesselungsalgorithmus

  Alt 26. Okt 2010, 16:31
Erklär doch mal was du hier machen willst, ich sehe da nämlich nur einen geringen Sinn........

Delphi-Quellcode:
for i := 1 to length(Klartext) do
  begin
    for k:=1 to length(Schluessel) do
    begin
      if Klartext[i] = Schluessel[k] then
      begin
        if k mod 2 = 0
          then Zwischentext[i] := Schluessel[k-1]
          else if k < length(Schluessel)
                  then Zwischentext[i] := Schluessel[k+1]

      end;
    end;

...
Beispiel deiner Funktion:
Klartext := 'HALLOWELT';
Schluessel := 'HOLBERT';

Das (müsste) passieren:
Klartext[1] = Schluessel[1] stimmt
k ist 1, also ist k mod 2 = 1 -> else tritt ein
Zwischentext: 'IALLOWELT';

Klartext[1] = Schluessel[2] stimmt nicht
...


-> jedenfalls ist der erste Buchstabe schonmal das 'I'


Jetzt machen wir das mit deiner Methode wieder rückgängig
Delphi-Quellcode:
 for i:= 1 to Length(Geheimtext) do
 begin
 
  for k:=1 to length(Schluessel) do
    begin
      if Geheimtext[i] = Schluessel[k] then
        begin
          if k mod 2 = 0
           then Zwischentext[i] := Schluessel[k-1]
           else if k < length(Schluessel)
                   then Zwischentext[i] := Schluessel[k+1]


        end;
    end;

...
I ist nicht gleich dem ersten Buchstaben aus dem Schlüssel, der ist ja H.
I kommt gar nicht im Schlüssel vor, also wird Geheimtext[1] = Schluessel[k] nie zutreffen und das I wird nie rückgängig gemacht





Im Prinzip musst du deine Verschlüsselungsmethode beim Entschlüsseln genau umgekehrt machen.
Das
Delphi-Quellcode:
Zeichen := Zwischentext[i];
    GTwert := GetStellenwertVon(Zeichen);
    KeyL := Length(Schluessel);
    KTWert := (GTWert - KeyL + 2700 - getStellenWertvon(Schluessel[3])) mod 27;
    //Zwischentext := Zwischentext + GetZeichenVon(GTWert);
    Zeichen := GetZeichenVon(KTWert);

    KLartext := Klartext + Zeichen;
muss also in geänderter Form oberhalb von
Delphi-Quellcode:
for i:= 1 to Length(Geheimtext) do
 begin
 
  for k:=1 to length(Schluessel) do
    begin
      if Geheimtext[i] = Schluessel[k] then
        begin
          if k mod 2 = 0
           then Zwischentext[i] := Schluessel[k-1]
           else if k < length(Schluessel)
                   then Zwischentext[i] := Schluessel[k+1]


        end;
    end;
stehen, weil es beim verschlüsseln schon in dieser Reihenfolge stand.

Wenn du nochmal genauer erklärst, was deine einzelnen Schritte machen sollen, können wir dir vielleicht weiter helfen

Geändert von fui-tak (26. Okt 2010 um 16:33 Uhr)
  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 10:17 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