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

如何导入私钥并使用它在C#中对文档进行签名?,c#,digital-signature,x509certificate,C#,Digital Signature,X509certificate,我已经生成了一个自签名证书(X509证书),并希望使用私钥对某些文档进行签名以进行数字签名,我正在用C#完成这项工作 如何导入.pvk文件?我需要从密钥存储导入吗 我可以用这个代码来签名和创建数字签名吗 RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA); RSAFor

我已经生成了一个自签名证书(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(数据,“sha1”)

尝试如下方式初始化RSA:

RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)cert.PrivateKey;

要生成签名,我使用rsa.SignData(数据,“sha1”)

首先,您需要确定签名的格式。如果您处理证书,很可能会创建PKCS#7或CMS签名。在.NET中有一个CMS签名类

接下来的步骤取决于您是需要基于证书的PKCS#7签名还是RSA(PKCS#1)签名


旁注:把几个问题放在一个问题上会让你很难正确回答。如果你搜索,你的大多数问题都有很多答案

首先,您需要确定签名的格式。如果您处理证书,很可能会创建PKCS#7或CMS签名。在.NET中有一个CMS签名类

接下来的步骤取决于您是需要基于证书的PKCS#7签名还是RSA(PKCS#1)签名


旁注:把几个问题放在一个问题上会让你很难正确回答。如果你搜索,你的大多数问题都有很多答案

那么我可以这样在证书上签名吗?X509Certificate2证书=新的X509Certificate2(私钥文件,密码);那么我可以这样在证书上签名吗?X509Certificate2证书=新的X509Certificate2(私钥文件,密码);谢谢你的回答。我是新来的,下次我会问每个主题一个问题。谢谢你的回答。我是新来的,下次我会问每个主题一个问题