Einzelnen Beitrag anzeigen

Zeih

Registriert seit: 10. Nov 2005
Ort: Pasewalk
4 Beiträge
 
#1

Caesar Verschlüsselung und seine Varianten

  Alt 14. Nov 2005, 18:03
Aufgabe:
Verschlüsselung/Entschlüsselung von Text durch einfache Umwandlung in ASCII, Caesar-Addition, Caesar-Multiplikation und Caesar (Addition-Multiplikation)... tjoar...
----------------------------------------------------------
ASCCI, Caesar-Addition - verschlüsselung/entschlüsselung funtzt...
-------------------------------------------------------------
Bin momentan noch an der Entschlüsselung von einem Caesar-Additionstext...
meine Variante momentan funtzt nur mit:
-wenn mir die Anzahl(k) bekannt ist, mit der das Alphabet verschoben wurde...
brauch aber eine ohne die Kenntnis dieser Zahl... also Brute Force-mäßig...

soweit erstma der Quelltext:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, ExtCtrls, Spin;

type
  TForm1 = class(TForm)
    BtnPrepare: TButton;
    BtnDelete1: TButton;
    BtnCode: TBitBtn;
    BtnDelete2: TButton;
    BtnDecode: TBitBtn;
    BtnClose: TBitBtn;
    SpinEdit1: TSpinEdit;
    PUe1: TPanel;
    ComboBox1: TComboBox;
    EKlar: TMemo;
    EGeheim: TMemo;
    Eergebnis: TMemo;
    Label1: TLabel;
    procedure ComboBox1Change(Sender: TObject);
    procedure BtnDelete1Click(Sender: TObject);
    procedure BtnDelete2Click(Sender: TObject);
    procedure BtnPrepareClick(Sender: TObject);
    procedure BtnCodeClick(Sender: TObject);
    procedure BtnDecodeClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  quelltext: string;
  Klartext: string;
  Geheimtext:string;

implementation

{$R *.dfm}

procedure TForm1.BtnDelete1Click(Sender: TObject);
begin
EKlar.text:='';
end;

procedure TForm1.BtnDelete2Click(Sender: TObject);
begin
EGeheim.Text:='';
end;

procedure TForm1.BtnPrepareClick(Sender: TObject);
var i: integer;
    c: char;
begin
klartext:=EKlar.text;
quelltext:='';
for i:=1 to length(klartext) do
  begin
    c:=klartext[i];
    case c of
      'A' .. 'Z' : quelltext := quelltext + c;
      'a' .. 'z' : quelltext := quelltext + upcase(c);
      'ß'        : quelltext := quelltext + 'SS';
      'ä'        : quelltext := quelltext + 'AE';
      'ö'        : quelltext := quelltext + 'OE';
      'ü'        : quelltext := quelltext + 'UE';
      'Ä'        : quelltext := quelltext + 'AE';
      'Ö'        : quelltext := quelltext + 'OE';
      'Ü'        : quelltext := quelltext + 'UE';
    end;
  end;
EKlar.text:=quelltext;
end;

procedure TForm1.BtnCodeClick(Sender: TObject);
var i, ASCII, k:Integer;
    c:char;

begin
Geheimtext:='';
for i:=1 to length(Quelltext) do
case combobox1.ItemIndex of
 0: begin
    c:=Quelltext[i];
    ASCII:=ord(c);
    Geheimtext:=Geheimtext + IntToStr(ASCII);
    end;
 1: begin
    ASCII:=ord(quelltext[i]);
    k:=spinedit1.value;
    ASCII:=ASCII-k;
    if ASCII<65 then ASCII:=ASCII+26;
    geheimtext:=geheimtext+chr(ASCII);
    end;
 2: begin

    end;

 end;
 EGeheim.Text:=Geheimtext;
 end;

procedure TForm1.BtnDecodeClick(Sender: TObject);
var paar:string;
    ascii, i, k:integer;
    zeichen:char;
begin
geheimtext:=EGeheim.text;
klartext:='';
case ComboBox1.ItemIndex of
 0: begin
    for i:=1 to length(geheimtext) div 2 do
    begin
      paar:= geheimtext[2*i-1] + geheimtext[2*i];
      ascii:= StrToInt(paar);
      klartext:=klartext + chr(ascii);
    end;
    end;
 1: begin
    for i:=1 to length(geheimtext) do
    begin
      zeichen:=geheimtext[i];
      ASCII:=ord(zeichen);
      k:=spinedit1.value;
      ASCII:=ASCII+k;
      if ASCII>90 then ASCII:=ASCII-26;
      klartext:=klartext + chr (ASCII);
    end;
    end;
end;
EKlar.text:=klartext;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if Combobox1.itemindex=1
then
  begin
     spinedit1.visible:=true;
     label1.Visible:=true;
  end;
if Combobox1.ItemIndex=0
then
  begin
     spinedit1.Visible:=false;
     label1.Visible:=false;
  end;
end;

end.
http://www.directupload.net/images/0...p/xh3jgs7m.jpg

ps: Bin neu hier... Falls es hier irgendwelche Regeln gibt, wie "nicht den ganzen quelltext posten" oder sowas... schonmal sry vorweg ;-)
  Mit Zitat antworten Zitat