Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: 25facher Cäsar (einfache Verschlüsselung)

  Alt 20. Nov 2008, 23:49
Ähm, ist es normal, dass Schluesseln() sowohl bei der Ver- als auch bei der Entschlüsselung binäres Zeug ausgibt? Ich dachte, es sollten lateinische Großbuchstaben rein und rauskommen sowie im Key sein.

Ansonsten wäre für den Geheimstring ein kleiner BruteForce mit anschließender Plausibilitätsprüfung möglich:

Delphi-Quellcode:
function Schluesseln(Text,Key:String;Crypt:Boolean):String;
var i,KeyIdx : Integer;
begin
  Result:='';
  KeyIdx:=0;
  for i:=1 to length(Text) do begin
    inc(KeyIdx);
    if KeyIdx>Length(Key) then KeyIdx:=1;
    if Crypt then Result:=Result+chr(ord(Text[i])+ord(Key[KeyIdx]))
             else Result:=Result+chr(ord(Text[i])-ord(Key[KeyIdx]))
    end;
end;

procedure GetAll(key: string);
var
  ky: string;
  c: char;
  i: Integer;
const
  max = 3;
begin
  if length(key) >= max then exit;

  for i := 0 to 25 do
  begin
    c := chr(ord('A')+i);
    ky := key + c;
    form1.memo1.Lines.add(Schluesseln('PTWAYWFZOP XRKXJVIYWARM EH VDKD FZKIXU EQBC MCYTPVOMOUJKBM BYP HJUXY FVBHF RGZYIXU VMJOMT AFERLWXV', ky, false) + ' ('+ky+')');
    GetAll(ky);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  c: char;
  i: Integer;
begin
  for i := 0 to 25 do
  begin
    c := chr(ord('A')+i);
    GetAll(c);
  end;
end;
Im Moment ist aber nicht wirklich was plausibel, weil ich keine Binärzeichen auf meinem Bildschirm erwartet hätte.
Daniel Marschall
  Mit Zitat antworten Zitat