首页 > 解决方案 > 我们如何在 Windows 商店 + C# 中存储和检索包含私钥的证书

问题描述

在我的 Windows 应用程序中,我将获得一个包含私钥的证书。公钥在我身边。我想将此证书安全地存储在 Windows 安全文件夹中,并且可以在需要时访问它。请帮助我做到这一点。任何示例程序。

标签: c#windowscertificateprivate-key

解决方案


我得到了一个关于如何使用私钥存储证书的解决方案。

byte[] byteKey = DecodePrivateKey(Convert.FromBase64String(cryptoCertificateKey));
RSAParameters rsaParam = DecodeRSAPrivateKeyToRSAParam(byteKey);
                    var cspParams = new CspParameters
                    {
                        ProviderType = 1,
                        Flags = CspProviderFlags.UseUserProtectedKey | CspProviderFlags.NoPrompt};
 using (X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine))
{
store.Open(OpenFlags.ReadWrite); 
using (RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(cspParams))
                    {
                        rsaProvider.ImportParameters(rsaParam);
                        rsaProvider.PersistKeyInCsp = true;
X509Certificate2 x509Certificate = new X509Certificate2(cryptoCertificate, "123",
                            X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable |
                            X509KeyStorageFlags.PersistKeySet);
store.Add(x509Certificate);
}}

但我没有得到如何用密码保护私钥的解决方案


推荐阅读