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

标签 c# digital-signature x509certificate

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

如何导入 .pvk 文件?我需要从 keystore 导入吗?

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

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");

关于c# - 如何导入私钥并使用它在 C# 中签署文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871434/

相关文章:

c# - GetType() 在父类(super class)构造函数中返回子类 Type

hash - 如何使用signtool.exe在exe文件中嵌入哈希

openssl - 创建证书时遇到"Error adding attribute"

ssl - 此证书具有无效的颁发者钥匙串(keychain)

xml - 在 Java 中管理 XAdES 签名的库

c# - 在受信任的发布者商店中找不到证书

c# - 适用于 Windows + C# 的短信网关

c# - 使用 SDK (C#) 示例创建逻辑应用工作流

c# - 编辑 wpf 控件模板但使用原始样式

java - 在客户端/Web 服务器架构中实现数字签名