繁体   English   中英

如何导入私钥并用它在C#中签名文档?

[英]How can I import private key and use it to sign document in C#?

我已经生成了一个自签名证书(X509证书),并希望使用私钥对某些文档进行签名以进行数字签名,而我正在C#中进行此操作。

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

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

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

尝试通过以下方式初始化您的RSA:

RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)cert.PrivateKey;

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

首先,您需要确定应以哪种格式进行签名。 如果处理证书,则很可能会创建PKCS#7或CMS签名。 .NET中有一个用于CMS签名的类。

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

旁注-将多个问题合而为一,很难正确回答。 此外,如果您进行搜索,大多数问题都会有很多答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM