【问题标题】:Why CryptImportKey failed?为什么 CryptImportKey 失败?
【发布时间】:2015-06-19 19:08:07
【问题描述】:

我正在尝试使用 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());
    }

【问题讨论】:

    标签: c++ encryption cryptography aes cryptoapi


    【解决方案1】:

    如果您想使用 AES,您的密钥长度应至少为 16 字节,您的密钥长度应为 8 字节。 AES 使用 128、192 或 256 位长的密钥。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多