調用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文件,把這個文件刪了,然后運行程序,程序正常運行了!具體原因尚不清楚,有知道的告訴我下!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM