Показать сообщение отдельно
Старый 01.10.2012, 21:38   #31
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 37
Сказал Спасибо: 9
Имеет 0 спасибок в 0 сообщенях
Rzone пока неопределено
По умолчанию

Эххх... не могу зашифровать лог пасс. Устал уже... Сделал из этой функции дллку подключил FGint, все скомпилилось. При вызове функции RSAEncrypt
получаю ошибку. Дальше сделал в делфи тестовую программу, что-бы посмотреть как работает функция. Тут вообще не пойми что... Прописал прям внутри функции "от балды" лог пасс и ключ 128 символов (rsakey:string), вывел результат на форму - то работает, то нет. Стоит поменять пару символов в ключе (при том же размере) - все крит эррор.
Я в замешательстве. Есть где-нибудь другие сорцы RSA/ECB/NoPadding? Или готовые библиотеки. посоветуйте что-нибудь.

Вот сорц длл:
Код:
library Project1;
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FGint;


function RSAEncrypt(aa,pp,rsakey:PChar):integer;
var
  sD,sR,sM:string;
  m,e,d,r:TFGInt;
  a,p:string;
begin
  a:=string(aa);
  p:=string(pp);
  if length(a)>14 then setlength(a,14);
  while length(a)<14 do a:=a+#0;
  if length(p)>16 then setlength(p,16);
  while length(p)<16 do p:=p+#0;
  for i:=0 to 13 do

  sD:=a+p+#0#0#0#0;
  sM:=string(rsakey);
  Base10StringToFGInt('65537',e);
  Base256StringToFGInt(sD,d);
  Base256StringToFGInt(sM,m);
  FGIntMontgomeryModExp(d,e,m,r); //тут ловлю крит...
  FGIntToBase256String(r,sR);

  //rsakey:=PChar(sR);
  //result:=PChar(sR);
end;

exports RSAEncrypt;

begin
end.

Последний раз редактировалось Rzone, 01.10.2012 в 21:48.
Rzone вне форума   Ответить с цитированием