Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probleme mit mod (https://www.delphipraxis.net/63672-probleme-mit-mod.html)

fran 21. Feb 2006 15:00


Probleme mit mod
 
Hallo Leute,

ich habe da mal wieder ein Problem und hoffe ihr könnt mir da vielleicht weiter helfen.

Also ich möchte in mein Programm eine RSA Verschlüsselung einbauen. Das Problem dabei ist das bei diesem Algorithmus der Modulo von einer potenzierten Zahl ausgerechnet werden muss.

In dem untenstehenden Beispiel (das noch nicht ganz fertig ist) habe ich z.B. eine Zahl hoch 7 und mod 143 genommen. aber leider verlangt Delphi von der Potenzierfunktion power eine Zahl vom Typ extended und mod weigert sich diese Zahl zu akzeptieren.

Vielen Dank schon mal im voraus

Fran

Delphi-Quellcode:
function TForm1.crypt(unver:string): string;

var i: integer;
    ver: string;
    tmp,tmp2: extended;

begin
for i:=1 to Length(unver) do
        begin
        tmp:=ord(unver[i]); //ASCII Wert ermitteln
        tmp2:= power(tmp,7) mod 143;
        result:=floattostr(tmp2);
        end;
end;

SirThornberry 21. Feb 2006 15:28

Re: Probleme mit mod
 
da du der Power-Funktion nur ganzzahlen übergibst steht somit auch fest das nur ganzzahlen zurück gegeben werden. Du kannst also einfach den Nachkommateil der von Power zurück gegeben wird abschneiden (weil der ja wegen der ganzzzahlen nicht vorhanden ist)
Delphi-Quellcode:
var i  : integer;
    ver : string;
    tmp,
    tmp2: Cardinal;
begin
  for i:=1 to Length(unver) do
  begin
    tmp   := ord(unver[i]); //ASCII Wert ermitteln
    tmp2   := Trunc(power(tmp,7)) mod 143;
    result :=floattostr(tmp2);
  end;
im übrigen macht die zeile
Delphi-Quellcode:
result:=floattostr(tmp2);
keinen sinn da beim nächsten schleifendurchlauf das ganze überschrieben wird (ist aber vermutlich nur für Testzwecke so). Und floattostr ist auch nicht mehr notwendig (würde jetzt inttostr werden) da es kein float mehr ist.

fran 21. Feb 2006 15:40

Re: Probleme mit mod
 
[quote="SirThornberry"]im übrigen macht die zeile
Delphi-Quellcode:
result:=floattostr(tmp2);
keinen sinn

(ist aber vermutlich nur für Testzwecke) quote]

Danke nochmal für die Hilfe. Hast übrigens recht, die Zeile ist nur für Testzwecke, die kommt dann später weg.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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