Главная страница
    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.038 c
1-1083222874
ПрогерШ
2004-04-29 11:14
2004.05.16
Как реализовать инитерфес в стиле IBExpert?


14-1082909285
Knight
2004-04-25 20:08
2004.05.16
Есть ли сейчас нормальные, заморочные квесты?


8-1078273036
Jaine
2004-03-03 03:17
2004.05.16
Смена иконки (Glyph) на кнопке типа BitBtn or Speedbutton


1-1083000926
Leonardo_de_caprio
2004-04-26 21:35
2004.05.16
Как ПРАВИЛЬНО останавливать Treadы в Delphi?


3-1082370020
}|{yk
2004-04-19 14:20
2004.05.16
А с таким запросом как?





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