C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 文件夾體積很大


現象:大量調用.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;

 

--

2021年1月21日

如果你就是需要X509Certificate2 這個實體對象。

那么把證書安裝到windows證書庫。如果是私鑰證書,要分配權限,如:Everyone。然后在windows證書庫中查找並使用這個證書。

從證書庫中檢索出X509Certificate2  對象:https://www.cnblogs.com/runliuv/p/14301623.html

 


免責聲明!

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



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