Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

Алгоритм RSA   Найти похожие ветки 

 
Сергей Бушин   (2004-04-30 05:24) [0]

Люди где найти нормальные исходники алгортима RSA для Delphi? Нужны именно исходники, а не компоненты на основе PGP или еще чего нибудь.


 
Dimaxx ©   (2004-04-30 22:02) [1]

Он вроде патентован/копирайтовый и ты не можешь просто так его использовать. Исходники должны быть в инете, но я не находил.


 
Goida ©   (2004-05-02 02:42) [2]

На вот тебе исходник. Кажется RSA. Мне не жалко.
function Find_D(e,N: int64): int64;
var
   i,ed: int64;
begin
   Result := 0;
   i := 1;
   repeat
       ed := N*i+1;
       Result := ed div e;
       i:=i+1;
   until ((e*Result)mod N) = 1
end;

function ExpMod(x,p,n: int64): int64;
var
   Res: int64;
begin
   if p = 0
   then begin
           Result := 1;
           exit
       end;
   if (p mod 2) = 0
   then begin
           Res := expmod(x, p div 2, n);
           Result := (Res*Res) mod n;
           exit
        end;
   Result := (x*expmod(x, p-1, n)) mod n;
end;

procedure TfmLab5.CodeExecute(Sender: TObject);
var
   fCode: file;
   i,n: integer;
   da,db,c: integer;
begin
   n:=1;//первый файл
   if CodedFName = ""
   then if SaveDialog1.Execute
        then
           CodedFName := SaveDialog1.FileName
        else
           exit;
   //составим первый файл
   insert("_"+inttostr(n),CodedFName,length(CodedFName)-3);
   if fmInputNum.ShowModal <> mrOK
   then
       exit;
   assignfile(fCode,CodedFName);
   rewrite(fCode,1);
   for i := 1 to length(Memo1.Lines.Text) do
   begin
       c:=expmod(ord(Memo1.Lines.Text[i]),uInputNum.EA,uInputNum.P*uInputNum.Q);
       blockwrite(fCode,c,sizeof(c))
   end;
   closefile(fCode);
   Application.ProcessMessages;
   //теперь составим второй файл
   n := n+1;
   delete(CodedFName,length(CodedFname)-5,2);
   insert("_"+inttostr(n),CodedFName,length(CodedFName)-3);
   assignfile(fCode,CodedFName);
   rewrite(fCode,1);
   for i := 1 to length(Memo1.Lines.Text) do
   begin
       c := expmod(ord(Memo1.Lines.Text[i]),uInputNum.EA,uInputNum.P*uInputNum.Q);
       c := expmod(c,uInputNum.EB,uInputNum.P*uInputNum.Q);
       blockwrite(fCode,c,sizeof(c))
   end;
   closefile(fCode);
   Application.ProcessMessages;
   //3-й файл
   n := n+1;
   delete(CodedFName,length(CodedFname)-5,2);
   insert("_"+inttostr(n),CodedFName,length(CodedFName)-3);
   da := Find_D(uInputNum.EA,(uInputNum.P-1)*(uInputNum.Q-1));
   assignfile(fCode,CodedFName);
   rewrite(fCode,1);
   for i := 1 to length(Memo1.Lines.Text) do
   begin
       c := expmod(ord(Memo1.Lines.Text[i]),uInputNum.EA,uInputNum.P*uInputNum.Q);
       c := expmod(c,uInputNum.EB,uInputNum.P*uInputNum.Q);
       c := expmod(c,da,uInputNum.P*uInputNum.Q);
       blockwrite(fCode,c,sizeof(c))
   end;
   closefile(fCode);
   Application.ProcessMessages;
   //4-й файл
   n := n+1;
   delete(CodedFName,length(CodedFname)-5,2);
   insert("_"+inttostr(n),CodedFName,length(CodedFName)-3);
   db := Find_D(uInputNum.EB,(uInputNum.P-1)*(uInputNum.Q-1));
   assignfile(fCode,CodedFName);
   rewrite(fCode,1);
   for i := 1 to length(Memo1.Lines.Text) do
   begin
       c := expmod(ord(Memo1.Lines.Text[i]),uInputNum.EA,uInputNum.P*uInputNum.Q);
       c := expmod(c,uInputNum.EB,uInputNum.P*uInputNum.Q);
       c := expmod(c,da,uInputNum.P*uInputNum.Q);
       c := expmod(c,db,uInputNum.P*uInputNum.Q);
       blockwrite(fCode,c,1)//записываем один байт, т.к. должна быть буква
   end;
   closefile(fCode);
   Application.ProcessMessages;
   Application.MessageBox("Encryption complited!","Coding...",MB_OK+MB_ICONINFORMATION)
end;


 
DDA ©   (2004-05-02 15:14) [3]

Ищи библеотеку FGint

Хотя она вот здесь
http://triade.studentenweb.org



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
3-1082701328
Урмат
2004-04-23 10:22
2004.05.16
Как в ADOTable ограничить добавление записи


9-1071510959
Yaroslav
2003-12-15 20:55
2004.05.16
С чего начать??? Нужно сделать игрушку.


3-1082348585
Layner
2004-04-19 08:23
2004.05.16
Вставка записи в табл. на одном MS SQL сервере должно зеркально


1-1083420546
Vin_Ghost
2004-05-01 18:09
2004.05.16
Создание окна на весь экран.


1-1083316937
tlan
2004-04-30 13:22
2004.05.16
как работать с Zlib?