【问题标题】:Can’t create contex for AES encryption. Windows XP无法为 AES 加密创建上下文。视窗
【发布时间】:2019-10-02 05:54:54
【问题描述】:

我已经编写了这样的代码,它将为 aes 加密创建上下文(支持 Win32API):

if (!CryptAcquireContext(&hProvs, NULL, NULL, PROV_RSA_AES, CRYPT_VERIFYCONTEXT))
    {
        if (!CryptAcquireContext(&hProvs, NULL, NULL, PROV_RSA_AES, CRYPT_NEWKEYSET | CRYPT_VERIFYCONTEXT))
        {
            printf("%d\n", GetLastError());
            getchar();
            ExitProcess(0);
        }
    }

它在 Windows 7 或更高版本上运行良好,但是当我在 Windows XP 上启动它时,我没有收到任何错误,只是关闭了应用程序。没别的了。怎么了?

【问题讨论】:

标签: c++ visual-studio wincrypt


【解决方案1】:

https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptacquirecontexta

重要提示:此 API 已弃用。新的和现有的软件应该开始使用 Cryptography Next Generation API。 Microsoft 可能会在未来的版本中删除此 API。

【讨论】:

  • 这不是我的问题的解决方案
  • @Jureg,我认为它在新系统上失败了。对不起,我误解了意思。有没有调试看看程序在哪里退出,有没有GetLastError()返回的错误码?
  • 我试图得到最后一个错误但没有输出。它立即关闭cmd。尝试获取上下文时它正在关闭
  • @Jureg,很抱歉没有及时回复你,设置断点或系统(“暂停”)暂停程序,让你详细了解你的程序是如何工作的.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 2011-06-12
  • 2017-01-05
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多