是否可以将数字证书作为参数传递,使用它进行签名,而不是将其存储在本地
本文关键字:存储 数字证书 参数传递 是否 | 更新日期: 2023-09-27 17:55:14
我已经搜索了这个,但还没有找到答案。
如果我想使用数字证书对某些内容进行签名,通常必须将其保存在证书存储中。
但是,是否可以将数字证书作为方法参数传递,使用证书对文档进行签名,并且不以任何方式将其存储在本地?
我会在 C++ 或 C# 中执行此操作。
可以使用 X509Certificate2
类的各种构造函数从文件或字节数组创建证书。 例如:
string certFile = @"MyCert.pfx";
string pfxPassword = "password"; // never hard code password in code
X509Certificate2 certificate = new X509Certificate2(certFile, pfxPassword,
X509KeyStorageFlags.MachineKeySet);
RSACryptoServiceProvider rsaCsp = (RSACryptoServiceProvider)certificate.PrivateKey;
然后,可以使用加密服务提供程序进行签名,如如何:使用数字签名对 XML 文档进行签名。
现在这是否"不以任何方式将其存储在本地"? 嗯,不完全是。 证书不存储,但私钥存储在Microsoft加密 API 加密服务提供程序密钥数据库中。