c# - 我们如何在 Windows 商店 + C# 中存储和检索包含私钥的证书
问题描述
在我的 Windows 应用程序中,我将获得一个包含私钥的证书。公钥在我身边。我想将此证书安全地存储在 Windows 安全文件夹中,并且可以在需要时访问它。请帮助我做到这一点。任何示例程序。
解决方案
我得到了一个关于如何使用私钥存储证书的解决方案。
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);
}}
但我没有得到如何用密码保护私钥的解决方案
推荐阅读
- postgresql - 无法打开与 OID 133630413 的关系
- java - 如何禁用运行 | Visual Studio 代码中的 java 主类文件中的调试选项
- python - 在 asyncio/Quart 中安全地等待两个事件源
- arrays - MASM x86 如何按升序对数组进行排序?
- node.js - 在循环中重复传递给函数的值
- vaadin14 - Vaadin 14:如何设置关闭用户交互的通知?
- java - Amazon Connect + Amazon S3 以及拨打电话号码的可能性
- python - 如何解决这个同步问题 discord.py?
- bash - 在合并一列时将 .csv 文件与 BASH 进行比较
- flutter - Flutter 应用程序在尝试添加谷歌帐户然后返回应用程序屏幕后显示黑屏