У меня есть класс шифрования, разработанный в Microsoft Visual C ++ 6.0, и он работает правильно.Я перенес код в Microsoft Visual Studio 2008, этот класс работает, но с другим поведением.
Когда я передаю определенную строку для шифрования, результат шифрования, сгенерированный в скомпилированном коде в Visual C ++ 6.0отличается от Visual Studio 2008 и не должно происходить.
Может кто-нибудь помочь мне понять, почему это происходит?
Используемые функции шифрования служб Windows:
HCRYPTPROV hProv;
HCRYPTHASH hHash;
HCRYPTHASH hKey;
CString strDataKey;
DWORD dwSize;
DWORD dwSizeEncrypted;
BYTE * aszEncryptedBuffer;
......... (Другие коды .....) .......
CryptAcquireContext (& hProv, NULL, MS_STRONG_PROV, PROV_RSA_FULL, 0);
CryptCreateHash (hProv, CALG_MD5, 0, 0, & hHash);
CryptHashData (hHash, (const unsigned char *) strDataKey, dwSize, 0);
CryptDeriveKey (hProv, CALG_RC2, hHash, CRYPTDERIVEKEY_FLAG, & hKey);
aszEncryptedBuffer = new BYTE[dwSizeEncrypted];
memcpy(aszEncryptedBuffer,"Data to be encrypted",dwSize);
CryptEncrypt (hKey, 0, TRUE, 0, aszEncryptedBuffer, & dwSize, dwSizeEncrypted);
заранее спасибо.