Главная страница
    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.46 MB
Время: 0.754 c
14-1083132720
Pomoshnik
2004-04-28 10:12
2004.05.16
Delphi


14-1082979181
electrci
2004-04-26 15:33
2004.05.16
Где можно разместить программу-сервер?


7-1081145534
Clawhammer
2004-04-05 10:12
2004.05.16
Установка Time Zone...


1-1083117685
-=[SDA]=-
2004-04-28 06:01
2004.05.16
Панель в QuickReport!!! -> false!!!


9-1072642249
Igoryok
2003-12-28 23:10
2004.05.16
PolyBezier или как сделать кривую как в нормально графическом рет





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский