Einzelnen Beitrag anzeigen

schlagzu

Registriert seit: 11. Okt 2010
86 Beiträge
 
Delphi XE Starter
 
#5

AW: Socket Handshake Verschlüsselung

  Alt 29. Aug 2011, 22:30
Hallo,

also ich habe mal ein Testprogramm geschrieben. Doch ich habe ein Problem. 2 und 19 ist das Maximum, da eine int64 Variable vom Wertebereich nicht hinhaut. Gibt es eine Möglichkeit dies zu erweitern/splitten?

Delphi-Quellcode:
program test;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  a,b,ga,gb,k1,k2:Int64;

const
  g:Int64=2;
  p:Int64=19;

  function potenz(b,e:int64):int64; //<< hier liegt der Fehler
  var x:longword;
  begin
    if e = 0 then result:=1;
    result:=b;
    for x:=2 to e do result:=result*b;
  end;

begin
  Randomize;
  a:=1+random(p-2);
  b:=1+random(p-2);
  write('a:');write(a);write(' | b:');writeln(b);
  writeln('--------------------------------------');
  ga:=potenz(g,a) mod p;
  gb:=potenz(g,b) mod p;
  write('A:');write(ga);write(' | B:');writeln(gb);
  writeln('--------------------------------------');
  k1:=potenz(gb,a) mod p;
  k2:=potenz(ga,b) mod p;
  write('Key1:');write(k1);write(' | Key2:');writeln(k2);
  writeln('--------------------------------------');

  readln;
end.
Ich bitte um Hilfe.

MfG schlagzu
  Mit Zitat antworten Zitat