Показать сообщение отдельно
Старый 30.10.2010, 23:20   #11
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 38
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Кислый пока неопределено
По умолчанию

Код:
function RSAEncrypt(a,p,rsakey:string):string;
var
zSt: string;
sD,sR,sM:string;
m,e,d,r:TFGInt;
begin
//это то что добавил без этого никак
SetLength(zSt, 98);
FillChar(zSt[1], Length(zSt), 0);
zSt[95]:= #$20;
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:=zSt+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;
помогите реализовать на сях.

у самого получается только
Код:
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
    cout << "RSA_Encrypt" << endl;

    char zSt[98];
    char sD, sR, sM;
    //? m, e, d, r;
char a_[14];
    //out var
    char a[] = "0123456789ABCDEF";//89ABCDEF";
    char p[] = "0123456789ABCDEF0.123456789";

    char rsakey;
    //begin
    int i_ =0;
    while (i_<sizeof(zSt))
        { zSt[i_]=0 ; i_++; cout << i_-1<< " " << (int)zSt[i_-1] << endl;};

    zSt[95] = 0x20;
    cout << (int)zSt[95] << " " << (float)zSt[95] << endl;

    if (strlen(a)>14)
        {       char a_[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
                int i; for (i=0;i<15;++i){cin>>a_[i];cout<<i<<" "<<a_[i]<<endl;};
                strncpy( a_, a, 14);
                cout <<"a = " << a_ << " " << a << endl;
        };
    while(strlen(a)<14)
        {
                 strcat(a, "0");
        };

    if (strlen(p)>16)
        {       char p_[16];
                strncpy( p_, p, 16);
                cout <<"p =" << p_ << " " << p << endl;
        };
    while(strlen(p)<16)
        {
                 strcat(p, "0");
                 cout << "while  " << p << endl;
        };
        
   // ?? strcat(, "0");    
    
    return 0;
}
как видите никак ((
Кислый вне форума   Ответить с цитированием