Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

Алгоритм 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.136 c
7-1081509708
Zheks
2004-04-09 15:21
2004.05.16
Как без лишних вопросов выключить комп под WinXP?


1-1083493916
Sour
2004-05-02 14:31
2004.05.16
как проверить соответсвие xml схеме xsd


3-1082641651
Nebiyev
2004-04-22 17:47
2004.05.16
Как поместить картинку в базу данных?


3-1082238236
SergeyV
2004-04-18 01:43
2004.05.16
Соединение с MS-SQL2000 из консольного приложения


3-1082705574
}|{yk
2004-04-23 11:32
2004.05.16
По ведению логов в FireBird 1.5





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский