c++ - 使用winapi函数生成密钥时数据泄漏
问题描述
我有一个问题:当我尝试生成 AES 密钥 128 长度时,CryptGenKey
我有数据泄漏?
下面的代码:
void GeKey(HCRYPTKEY hKey, HCRYPTPROV hProvs)
{
DWORD len_iv = 0;
if (!CryptGenKey(hProvs, CALG_AES_128, CRYPT_EXPORTABLE, &hKey))
{
ExitProcess(0);
}
if (!CryptExportKey(hKey, NULL, PLAINTEXTKEYBLOB, NULL, NULL, &len_iv))
{
ExitProcess(0);
}
unsigned char* aes_key_dec = new unsigned char[len_iv];
if (!CryptExportKey(hKey, NULL, PLAINTEXTKEYBLOB, NULL, aes_key_dec, &len_iv))
{
ExitProcess(0);
}
for (int i = 0; i < len_iv; i++)
{
printf("%c", aes_key_dec[i]);
}
printf("\n\n");
delete[] aes_key_dec;
}
delete[] aes_key_dec;
无法帮助我解决这个问题。怎么了 :/
解决方案
推荐阅读
- powershell - Powershell 创建和导出根证书 PFX
- scala - 如何将值传递给 JsonPath 以进行 Gatling
- laravel - laravel mutator:访问其他属性
- django - 无法使 Codemirror 配置工作
- java - 编译时与运行时方法绑定
- python - opencv在编写jpeg时会降低红色亮度
- c# - 基于分隔符模式 [,] 的 C# 字符串拆分
- linux - 如果不包含某个文件,则给出父文件夹名称
- swift - 如何通过按钮单击从 swift 应用程序通过 IVR 呼叫(即 #123#)使 iOS swift 呼叫表单
- php - 允许传递空查询参数的 htaccess 规则