C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 資料夾體積很大
阿新 • • 發佈:2020-12-06
現象:大量呼叫.p12證書時,C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys資料夾變得越來越大。
呼叫程式碼:
X509Certificate2 x509 = new X509Certificate2(p12FullName, hfMchId, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
根據觀察,這種例項化(X509Certificate2)呼叫的方式會使用MachineKeys 資料夾,不停的產生新檔案。
有限的解決辦法:
如果你只是用到p12證書的私鑰或序列號,那麼直接將私鑰或序列號讀取出來,存入變數、配置檔案或資料庫中。下次呼叫,直接使用提取好的私鑰或序列號。
提取私鑰:
X509Certificate2 x509 = new X509Certificate2(qdInfo.p12FullName, qdInfo.mchId, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable); string xmlPrivateKey = x509.PrivateKey.ToXmlString(true);
提取序列號:
X509Certificate2 x509 = new X509Certificate2(p12FullName, hfMchId, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable); string SerialNumber = x509.SerialNumber;
--