C++ 使用C+;进行AES加密时出错+;
我已经完成了C++ 使用C+;进行AES加密时出错+;,c++,encryption,aes,C++,Encryption,Aes,我已经完成了ENCRYPT\u算法asCALG\u RC4。代码运行良好。当我将ENCRYPT_算法更改为CALG_AES_256时,它失败了 if(CryptAcquireContext( &hCryptProv, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) 及 失败,错误号为0x80090016和0x8009000f 我想执行AES 256加密,还想包括SH
ENCRYPT\u算法asCALG\u RC4
。代码运行良好。当我将ENCRYPT_算法
更改为CALG_AES_256
时,它失败了
if(CryptAcquireContext(
&hCryptProv,
NULL,
MS_ENHANCED_PROV,
PROV_RSA_FULL,
CRYPT_VERIFYCONTEXT))
及
失败,错误号为0x80090016
和0x8009000f
我想执行AES 256加密,还想包括SHA-512哈希以及加密CALG_SHA_512
。我需要修改哪些内容
注意:我不想使用任何第三方API来执行此操作。尝试在第一次调用中将CRYPT\u VERIFYCONTEXT
替换为CRYPT\u NEWKEYSET
(建议这样做)。在第二个调用中,我认为错误意味着“对象已经存在”,您必须以某种方式使用CRYPT\u DELETEKEYSET
删除它。
if(!CryptDeriveKey(
hCryptProv,
ENCRYPT_ALGORITHM,
hHash,
KEYLENGTH,
&hKey))