![]() |
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; |
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:
im übrigen macht die zeile
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;
Delphi-Quellcode:
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.
result:=floattostr(tmp2);
|
Re: Probleme mit mod
[quote="SirThornberry"]im übrigen macht die zeile
Delphi-Quellcode:
keinen sinn
result:=floattostr(tmp2);
(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 10:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz