为什么CryptImportKey失败了?

时间:2015-04-14 08:41:48

标签: c++ encryption cryptography aes cryptoapi

我正在尝试使用Windows CryptoAPI函数进行AES加密。

我想将自己的密钥提供给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());
    }

1 个答案:

答案 0 :(得分:0)

如果你想使用AES,你的密钥应该至少16字节长,你有8字节长的密钥。 AES使用128,192或256位长密钥。