如何在c#中导入私钥并使用它来签署文档?

本文关键字:签署 文档 私钥 导入 | 更新日期: 2023-09-27 18:03:50

我已经生成了一个自签名证书(X509证书),并想使用私钥签署一些文档来进行数字签名,我正在c#中完成它。

如何导入。pvk文件?我需要从密钥存储库导入吗?

我可以使用此代码签名并创建数字签名吗?

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
RSAFormatter.SetHashAlgorithm("SHA1");
RSAFormatter.SetKey(cert.PrivateKey);
byte[] SignedHash = RSAFormatter.CreateSignature(data);

如何在c#中导入私钥并使用它来签署文档?

尝试这样初始化你的RSA:

RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)cert.PrivateKey;

生成签名我使用rsa.SignData(data, "sha1");

首先你需要确定签名应该采用什么格式。如果要处理证书,很可能要创建pkcs# 7或CMS签名。. net中有一个用于CMS签名的类。

下一步取决于您是需要基于证书的pkcs# 7签名还是RSA (pkcs# 1)签名。

边注-把几个问题放在一起很难正确回答。而且,如果你去搜索的话,你的大多数问题都有很多答案。