Цитата:
Сообщение от Кислый
только я не пойму нафиг все это ?
|
я тоже не пойму нафига эти нули ибо 000002000 = 2000, и следовательно вполне достаточно делать так:
delphi Код:
function RSAEncrypt(a,p,rsakey:string):string;
var
sD,sR,sM:string;
m,e,d,r:TFGInt;
begin
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;
sD:=#$20#0#0+a+p+#0#0#0#0;
sM:=rsakey;
Base10StringToFGInt('65537',e);
Base256StringToFGInt(sD,d);
Base256StringToFGInt(sM,m);
FGIntMontgomeryModExp(d,e,m,r);
FGIntToBase256String(r,sR);
result:=sR;
end;
Добавлено через 6 минут
a и p мы приводим к правильной длине затем что так положено, ибо зашифровать нам надо 37хбайтное число где первый байт это $20, байты с 4го по 17й - логин, с 18го по 33й - пароль, остальные нули)