шифрование RC4 длина строки (CryptoAPI)
От: TermoYDR  
Дата: 18.04.11 05:45
Оценка:
шифрую строку текста, использую CryptoAPI, агл. шифрование RC4
проблема в том, что если строока больше 132 символов, после шифрования на выходе получается обрезанная строка
В и-нете объяснения не нашел, хотелось бы знать это ограничение самого алгоритма или я делаю что-то не так
Спасибо!


HCRYPTPROV hProv;
HCRYPTKEY hSessionKey;
HCRYPTHASH hHash;

LPCSTR sKey = "WrSxnCNBpJ7Ko4[e#,7Ty)a0ykP)62Ce[.bAA;SuOf4*{nagx4s,;5!eHU!v=p3z";
int lHashPassword = strlen(sKey);

if (!CryptAcquireContext(&hProv, NULL, NULL,
    PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
  return;

if(!CryptCreateHash(hProv, CALG_SHA, 0, 0, &hHash))
  return;

if(!CryptHashData(hHash, sKey, lHashPassword, 0))
  return;

if (!CryptDeriveKey(hProv, CALG_RC4, hHash, 128 << 16 , &hSessionKey))
  return;

AnsiString s = "1234567890123445678901234567890123456789012345678901234567891234567890123456789012345678901234567890123456789012345678901234567890123";

char *mstring = s.c_str();
DWORD count=strlen(mstring);

if (!CryptEncrypt(hSessionKey, 0, true, 0, (BYTE*)mstring,
    &count, strlen(mstring)))
  return;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.