Einzelnen Beitrag anzeigen

Benutzerbild von yörsch
yörsch

Registriert seit: 10. Jan 2007
Ort: Lampertheim
206 Beiträge
 
Delphi XE2 Architect
 
#11

AW: RSA-Verschlüsselung

  Alt 27. Okt 2011, 15:47
Hich ab auch mal ein bischen weiter gemacht...
Den Rest musst DU machen... Ich hab keine Ahnung von RSA...
Ich hoffe die Datenflüsse sind für dich klar...

Code:
unit fmRSA;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, mRSA;

type
  TForm1 = class(TForm)
    MemoCodiert: TMemo;
    MemoVerschluesselt: TMemo;
    MemoEntschluesselt: TMemo;
    BeendenButton: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ButtonEntschluesseln: TButton;
    ButtonVerschluesseln: TButton;
    procedure FormCreate(Sender: TObject);
    procedure BeendenButtonClick(Sender: TObject);
    procedure ButtonVerschluesselnClick(Sender: TObject);
    procedure ButtonEntschluesselnClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    RSA : TRSAWerkzeug;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  RSA.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  RSA := TRSAWerkzeug.create(-1);
end;

procedure TForm1.BeendenButtonClick(Sender: TObject);
begin
  close;
end;

procedure TForm1.ButtonVerschluesselnClick(Sender: TObject);
begin
  MemoVerschluesselt.Text := RSA.verschluesselCode(MemoCodiert.Text);
end;


procedure TForm1.ButtonEntschluesselnClick(Sender: TObject);
begin
  MemoEntschluesselt.Text := RSA.verschluesselCode(MemoVerschluesselt.Text);
end;

end.
UND

Code:
unit mRSA;

interface

uses Math;

const p = 11;
const q = 13;
const e = 23;
const d = 47;

type



TRSAWerkzeug = class
private
  zEingabecode: Integer;
  zVerschluesseltercode: Integer;
  function hoch_mod(x,y,z: integer): Integer;
public
  constructor create(pCode: integer); overload;
  destructor destroy;
  function verschluesselCode(Const KlarText:String): String;
  function entschluesselCode(Const Text:String): String;
end;


implementation

constructor TRSAWerkzeug.create(pCode: integer);
begin
  zEingabeCode := pCode;
  zVerschluesselterCode := 0
end;

destructor TRSAWerkzeug.destroy;
begin
//
end;

function TRSAWerkzeug.hoch_mod(x,y,z: integer): Integer;
var c : integer;
begin
 C := 1;
 while not (y = 0) do
 begin
   if (y mod 2 = 0) then begin
     x := (x * x) mod z;
     y := y div 2
    end
    else begin
      y := y - 1;
      c := (c*x) mod z
    end
   end;
     result := c
end;

// Liefert den Verschlüsselten TEXT
function TRSAWerkzeug.verschluesselCode(Const KlarText:String): String;
begin
  result := KlarText + ' nix gemacht';
  // Hier muss wass gemacht werden

end;

// Liefert den KlarText
function TRSAWerkzeug.entschluesselCode(Const Text:String): String;
begin
  result := Text + ' nix gemacht';
  // Hier muss wass gemacht werden
end;
Jörg
have FUN
  Mit Zitat antworten Zitat