Einzelnen Beitrag anzeigen

Noris

Registriert seit: 17. Nov 2009
Ort: Berlin
29 Beiträge
 
Delphi 6 Personal
 
#1

Entschluesselungsalgorithmus

  Alt 26. Okt 2010, 14:25
Hallo,

ich schreibe ein Entschluesselungsprogramm (kein sehr sicheres) nur eine Übung.
Ich habe den Verschluesselungsalgorithmus schon fertig und er funktioniert jedoch funktioniert die Entschlusselung nicht...
Kann mir da jmd. helfen?

Hier die Verschluesselungsprocedure/function:


Delphi-Quellcode:
procedure TKryptobox.Verschluesseln;
(* -------------------------------------------------------------------- *)
var
  i,
  k,
  KTWert, KeyL,
  GTWert, EWert : integer;
  Zeichen : char;

begin
  Geheimtext := '' ;
  Vorbehandeln(Klartext);
  Vorbehandeln(Schluessel);
  Zwischentext := Klartext;
  // hier kommt Ihr Verschluesselungsalgorithmus hin!
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;

    Zeichen := Zwischentext[i];
    KTwert := GetStellenwertVon(Zeichen);
    KeyL := Length(Schluessel);
    GTWert := (KTWert + KeyL + getStellenWertvon(Schluessel[3])) mod 27;
    //Zwischentext := Zwischentext + GetZeichenVon(GTWert);
    Zeichen := GetZeichenVon(GTWert);

    Geheimtext := Geheimtext + Zeichen;


  (*1. FOR-END*)
  end;

end;
Der Entschlüsselungsalgorithmus sieht bisher so aus kann aber auch komplett falsch sein.
Fall jmd. noch zusätzliche Infos brauch einfach fragen ich stelle sie dann rein!


Delphi-Quellcode:
procedure TKryptobox.Entschluesseln;
(* -------------------------------------------------------------------- *)
var
  i,k,
  KTWert,
  GTWert, KeyL : integer;
  Zeichen : char;

begin
  Klartext := '';
  Vorbehandeln(Geheimtext);
  Vorbehandeln(Schluessel);
    Zwischentext := Geheimtext;
  // hier kommt Ihr Entschluesselungsalgotithmus hin!
 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;

    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;
  (*Klartext := Zwischentext;


  Zeichen := Geheimtext[i];
GTWert := GetStellenwertVon(Zeichen);
KeyL := Length(Schluessel);
KTWert := (GTWert - KeyL +2700 - getStellenWertvon(Schluessel[3])) mod 27;
Klartext := Klartext + GetZeichenVon(KTWert); *)


 //Zeichen := Geheimtext[i];
 //GTWert := GetStellenwertVon(Zeichen);
 //KTWert := (GTWert -GetStellenwertvon(Schluessel[1+(i-1) mod length(Schluessel)]) +2700) mod 27;
 //Klartext := Klartext + Getzeichenvon(KTWert);
 end;
end;
alles bissel unordentlich weil ich mich wahrscheinlich total verritten habe

Schonmal danke im vorraus

hier nochmal die GetStellenWertVon-Function:

Delphi-Quellcode:
function TKryptoBox.GetStellenWertVon (Zeichen : char) : integer;
(* -------------------------------------------------------------------- *)
begin
   case Zeichen of
    'A'..'Z' : Result := ord(Zeichen) - 65 ;
     ' '     : Result := 26;
   end;
end;



Mfg Noris
<a href="http://www.coreandgaming.de"><img src="http://coreandgaming.de/AdminImages/mano.png" border="0" alt="Core N' Gaming" /></a>

Geändert von Noris (26. Okt 2010 um 15:32 Uhr)
  Mit Zitat antworten Zitat