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>