Показать сообщение отдельно
Старый 16.01.2010, 04:45   #24
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

delphi Код:
procedure RSAkeyDecode(var raw); var   ab: array[0..127] of Byte absolute raw;   i:  Word;   b:  Byte; begin   for i:=0 to $3f do ab[$40+i]:=ab[$40+i] xor ab[i];   for i:=0 to $03 do ab[$0d+i]:=ab[$0d+i] xor ab[$34+i];   for i:=0 to $3f do ab[i]:=ab[i] xor ab[$40+i];   for i:=0 to $03 do begin     b:=ab[i];     ab[i]:=ab[$4d+i];     ab[$4d+i]:=b;   end; end; function RSAEncrypt_GMP(a, p: string; var rsakey): string; var   sD:string;   m,d,r: mpz_t;   count: Integer; begin   RSAkeyDecode(rsakey);   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:=#$24#0#0+a+p+#0#0#0#0;   mpz_init(m);   mpz_import(m,128,1,1,0,0,rsakey);   mpz_init(d);   mpz_import(d,Length(sD),1,1,0,0,sD[1]);   mpz_init(r);   mpz_powm_ui(r,d,65537,m);   count:=32;   SetLength(Result,128);   mpz_export(Result[1],count,1,4,1,0,r);   mpz_clear(r);   mpz_clear(d);   mpz_clear(m); end; function RequestAuthLogin_c621(Login, Pasword: String; var rsakey; sessionID: Integer): string; var   Packet: TPacket;   lpRSA: string;   sock, i: Integer;   strSizes: array[0..3] of Byte; begin   lpRSA:=RSAEncrypt_GMP(Login,Pasword,rsakey);   with Packet do begin     InitWrite;     WriteB(0);                // Packet ID     Write(lpRSA[1],128);      // Login, Password     WriteD(sessionID);        // sessionID     WriteD(0); WriteD(0); WriteD(0); WriteD(0);     WriteB(8);     WriteD(0); WriteD(0); WriteD(0); WriteD(0);     WriteD(0); WriteD(0); WriteH(0);     AddChecksum(data[3],160);     Result:=data;   end; end;
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился 3 спасибками от: