Thema: Delphi RSA-Verschlüsselung

Einzelnen Beitrag anzeigen

g1o2k4

Registriert seit: 29. Aug 2006
57 Beiträge
 
#7

Re: RSA-Verschlüsselung

  Alt 17. Mär 2009, 21:05
das problem mit der endlosschleife von:
Delphi-Quellcode:
  repeat
    help := random(46340);
  until isPrime(help);
wurde ja schon angesprochen. wenn du es so machen willst solltest du wenigstens die geprüften zahlen aus der menge der zahlen von 0..46340 rausstreichen indem du sie zum beispiel in ein array oder stringlist schreibst und bei jedem schleifen durchlauf prüfst, ob die zahl bereits getestet wurde. aber selbst das ist verschwenderisch programmiert.

und zu dem isPrime test:
Delphi-Quellcode:
function TRSA.isPrime(x: Integer): Boolean;
var i, t: integer;
begin
  t := round(sqrt(x));
  for i := 2 to t do
    if x mod i = 0 then
      begin
        result := false;
        exit;
      end;
    result := true;
end;
ist zwar auch nicht perfekt aber immerhin nur sqrt(x) schleifendurchläufe statt x.


ich hab auch mal nen primzahl generator gemacht...dabei hatte ich ein array of boolean genommen und jeden array index geprüft ob es eine primzahl ist, wenn ja array[index] := true, wenn nein := false. dann könntest du am ende alle true-werte in ein neues array schreiben und dann neues_array[random(high(neues_array)] machen. dann wird dir eine zufällige primzahl ausgegeben.
  Mit Zitat antworten Zitat