Microsoft Visual C++ 6.0で開発された暗号化クラスがあり、正常に動作しています。 Microsoft Visual Studio 2008にコードを移行しましたが、このクラスは動作していますが、動作は異なります。VC++ 6.0とVS 2008のWindows暗号化サービスの相違点
特定の文字列を暗号化に渡すと、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);
ありがとうございます。