0
我正在嘗試使用Microsoft的Crypto API來執行一些RSA。在Windows Vista和更高版本上,我的代碼運行時沒有問題。究竟是什麼「持久的私鑰」?
CryptAcquireContext(&m_hCryptProv, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, 0);
不幸的是,我已經嘗試了兩個Windows XP的計算機時,收到錯誤代碼NTE_BAD_KEYSET(0x80090016)。
有一點谷歌搜索在Microsoft支持上找到了這篇文章。 http://support.microsoft.com/kb/238187
它提到了一個CRYPT_VERIFYCONTEXT標誌,如果「您沒有使用存儲在密鑰容器中的持久私鑰」,則該標誌可以被傳遞。在這種情況下,「持續私鑰」是什麼意思?
我很確定你的意思是「持續」,對吧? – ypnos
來自MS支持的確切引用說「持續」。我可以看到在這種情況下,「持久」會是怎樣互換的。 – ajs410
「堅持」意味着存儲以便重複使用。例如,如果您正在驗證簽名,則只需要臨時訪問公鑰;當簽名被驗證(或驗證失敗)時,密鑰可能被破壞。該錯誤表示默認密鑰容器已被使用。 –