我正在尝试使用 Windows CryptoAPI 函数进行 AES 加密。
我想将自己的 key 提供给 CryptEncrypt 函数,但我的 CryptImportKey 函数失败了
这是我的代码:
HCRYPTPROV hProv = NULL;
HCRYPTKEY hKey = NULL;
DWORD dwBlobLen;
PBYTE pbKeyBlob = NULL;
pbKeyBlob = (PBYTE)"1a1dc91c907325c6";
if(!CryptAcquireContext(&hProv, NULL,NULL, PROV_RSA_AES,CRYPT_VERIFYCONTEXT))
{
printf(" Error in AcquireContext 0x%08x \n",GetLastError());
}
if (!CryptImportKey(hProv,pbKeyBlob,sizeof(pbKeyBlob),0,CRYPT_EXPORTABLE,&hKey ))
{
printf("Error 0x%08x in importing the Des key \n",GetLastError());
}
最佳答案
如果你想使用 AES,你的 key 应该至少有 16 个字节长,你有 8 个字节长的 key 。 AES 使用 128、192 或 256 位长的 key 。
关于c++ - 为什么 CryptImportKey 失败了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29622839/