AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit mod

Ein Thema von fran · begonnen am 21. Feb 2006 · letzter Beitrag vom 21. Feb 2006
Antwort Antwort
fran

Registriert seit: 4. Nov 2005
38 Beiträge
 
Delphi 6 Personal
 
#1

Probleme mit mod

  Alt 21. Feb 2006, 15:00
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;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Probleme mit mod

  Alt 21. Feb 2006, 15:28
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
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
fran

Registriert seit: 4. Nov 2005
38 Beiträge
 
Delphi 6 Personal
 
#3

Re: Probleme mit mod

  Alt 21. Feb 2006, 15:40
[quote="SirThornberry"]im übrigen macht die zeile
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07: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