Verschlüsselung
Hallo Leute!
|
AW: RSA-Verschlüsselung
Erstmal Willkommen in der DP!
sagmal genau wo der Schuh drückt... |
AW: RSA-Verschlüsselung
"crypt" und "encrypt"
|
AW: RSA-Verschlüsselung
Du musst die Methoden schon mit ihrem richtigen Namen aufrufen, die heißen ja nicht Crypt und Decrypt.
P.S.: Wenn ich das schon wieder sehe Zitat:
|
AW: RSA-Verschlüsselung
Code:
Die sichbarkeit ist das problem
type
RSAWerkzeug = class zEingabecode, zVerschluesseltercode: Integer; private function hoch_mod(x,y,z: integer): Integer; public constructor init(pCode: integer); destructor gibFrei; function verschluesselCode: Integer; function entschluesselCode: Integer; end; function verschluesselCode: Integer; function entschluesselCode: Integer; sollten Public sein, dann können die Funktionen auch auserhalb der UNIT verwendet werden. ähnliches gilt für constructor init(pCode: integer); destructor gibFrei; es ist keine Klasse die von TFrom abgeleitet ist ... Die defaults sind auch je Delphi unterschiedlich. im zweifel immer private, protected, public, published verwenden Gruß Jörg |
AW: RSA-Verschlüsselung
Ja?
|
AW: RSA-Verschlüsselung
normal ist halt
constructor create(pCode: integer); und destructor destroy; |
AW: RSA-Verschlüsselung
Und der Destruktor sollte überschrieben werden. Allerdings lässt die ganze Namensgebung auf diese unmögliche Schul-Syntax schließen (ich sage nur: mSum), das kann man dem TE nicht vorwerfen.
|
AW: RSA-Verschlüsselung
Klar
|
AW: RSA-Verschlüsselung
Delphi-Quellcode:
type
TDings = class private (* hier alles rein, was die Klasse nur intern benötigt *) protected (* hier alles, worauf nur abgeleitete Klassen Zugriff haben sollen, wenn kein Bedarf, einfach weglassen *) public (* hier kommt alles rein, was von außen erreichbar sein soll *) constructor Create(<ggf. Parameter>); //der Konstruktor von TObject heißt Create destructor Destroy; override; //der Destruktor heißt Destroy und sollte überschrieben werden published (* nur für Komponenten relevant, was hierin steht, ist im Objektinspektor zu sehen *) end; |
AW: RSA-Verschlüsselung
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:
UND
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.
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; |
AW: RSA-Verschlüsselung
Zitat:
|
AW: RSA-Verschlüsselung
Alles klar!
|
AW: RSA-Verschlüsselung
Bist Du wirklich sicher, dass Ihr ernsthaft mit RSA ver-/entschlüsseln sollt? Ich will Dir ja nicht zu nahe treten, aber Deinen Posts nach zu urteilen ist Verschlüsselung endeutig ein paar Stufen zu hoch. Das lässt nur 2 Schlüsse zu: entweder soll RSA einfach nur simuliert werden, oder Du warst krank oder hast aus anderen Gründen schon lange den Anschluss verpasst.
|
AW: RSA-Verschlüsselung
Ja stimmt!
|
AW: RSA-Verschlüsselung
Hmm
|
AW: RSA-Verschlüsselung
Verschlüsselungs-Algorithmen sind m.W.n. nicht im Lieferumfang von Delphi enthalten, Du wirst Dich also nach externen Quellen umschauen müssen. Wobei mir das immer noch sehr spanisch vorkommt, so eine Aufgabe zu erteilen :gruebel:
|
AW: RSA-Verschlüsselung
Version 1.0 ;)
|
AW: RSA-Verschlüsselung
Weißt du denn, wie das RSA-Verfahren funktioniert?
Also mit Private/Public-Key und wie die Keys generiert werden auf Primzahlbasis? |
AW: RSA-Verschlüsselung
Das ist ja gut und schön, aber dafür wird er wohl eine entsprechende Unit verwendet haben. Von allein wird da ja nix verschlüsselt.
|
AW: RSA-Verschlüsselung
Zitat:
|
AW: RSA-Verschlüsselung
Außer "hoch_mod" sehe ich da nichts weiter. Ich kann mir nicht vorstellen, dass das schon alles sein soll (ich habe auch keinen Plan von RSA, aber AFAIK arbeitet der mit Schlüsselpaaren, das muss also definitiv entschieden mehr Code sein).
|
AW: RSA-Verschlüsselung
Zitat:
|
AW: RSA-Verschlüsselung
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; |
AW: RSA-Verschlüsselung
Zitat:
Delphi-Quellcode:
const p = 11;
const q = 13; const e = 23; const d = 47;
Delphi-Quellcode:
Für die Textverschlüsselung würde ich es versuchen den Text buchstabenweise zu ent-/verschlüsseln (bei dem gegebenen Schlüssel geht das aber nur für Ansii-Zeichen).
function RSAWerkzeug.verschluesselCode: Integer;
begin zVerschluesselterCode := hoch_mod({Hier die richtigen Parameter einsetzten.}); end; function RSAWerkzeug.entschluesselCode: Integer; begin zEingabeCode := hoch_mod({Hier die richtigen Parameter einsetzten.}); end; Aber wenn dieser Quelltext eine Vorgabe ist :kotz: |
AW: RSA-Verschlüsselung
thx
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz