调用CryptAcquireContext错误:8009000B
Posted royhawk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用CryptAcquireContext错误:8009000B相关的知识,希望对你有一定的参考价值。
自己写的程序之前运行的好好的,现在突然运行不了,经过调试分析,错误锁定在CryptAcquireContext函数,程序如下:
if ( !CryptAcquireContext( &hCryptProv, TEXT( "asdfghj.EncryptDecrypt" ), NULL, PROV_RSA_FULL, 0 )) { if ( !CryptAcquireContext( &hCryptProv, TEXT( "asdfghj.EncryptDecrypt" ), NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET )) { break; } }
当程序执行完 CryptAcquireContext( &hCryptProv, TEXT( "phantom.EncryptDecrypt" ), NULL, PROV_RSA_FULL, 0 ) 后出现了8009000B错误,网上查解决方法也没有找到,于是换了台机器试试,发现程序运行成功,结合之前网上查的说此函数跟C:\Users\xxx\AppData\Roaming\Microsoft\Crypto\RSA\ 下的文件有关,于是查看此目录发现生成了新文件48297cfb00d65bf63a17c282c61c6302_3ad499d0-f20f-47e6-8edc-b3d51afc16ca,打开文件发现文件中包含我们的"asdfghj.EncryptDecrypt"字符串,于是猜测之前机器运行不成功也许跟此文件有关系,于是回到原机器到RSA目录,也发现了48297cfb00d65bf63a17c282c61c6302_3ad499d0-f20f-47e6-8edc-b3d51afc16ca文件,把这个文件删了,然后运行程序,程序正常运行了!具体原因尚不清楚,有知道的告诉我下!
以上是关于调用CryptAcquireContext错误:8009000B的主要内容,如果未能解决你的问题,请参考以下文章
Angular 8 - ng lint:超出最大调用堆栈大小错误
未捕获的错误:将 laravel 5.8 升级到 8 后调用未定义的函数 Illuminate\Mail\TransportManager()
从 n = 8 开始的错误:“调用 Python 对象时超出了最大递归深度”[重复]