c# - SHA1 与 RSA 在 C# 中使用私钥

标签 c# rsa sha1 digital-certificate

我已经尝试过了

X509Certificate2 _MiCertificado = new X509Certificate2(@"C:\Users\Lefczuk\Downloads\KitPruebas SW\CSD Pruebas\aad990814bp7_1210261233s.cer", "12345678a",X509KeyStorageFlags.MachineKeySet);
RSACryptoServiceProvider RSA1 = (RSACryptoServiceProvider)_MiCertificado.PrivateKey;

SHA1 hasher = new SHA1CryptoServiceProvider();
UTF8Encoding e = new UTF8Encoding(true);
byte[] bytesFirmados = RSA1.SignData(e.GetBytes(this.obtenerCadenaOriginal()),hasher);
Convert.ToBase64String(bytesFirmados);

但它抛出 NullReferenceException,RSA1 对象为 null。

有没有办法在不使用 .psk 或 .p12 文件或不编写 OpenSSL 命令的情况下解决此问题?

最佳答案

证书 (.cer) 文件(例如您正在加载的文件)不包含私钥,因此 _MiCertificado.PrivateKey 为 null(这就是为什么 RSA1 也为 null )。如果没有私钥,您就无法对数据进行签名,因此您必须加载包含私钥的文件(例如 .p12)。

关于c# - SHA1 与 RSA 在 C# 中使用私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789843/

相关文章:

c# - 如何从另一个类或窗口访问 WPF 中的控件

java - 计算字节数组的 SHA-1

c# - C# 中的 Regex.match 性能问题

c# - 如何在图像上的文字下生成阴影

java - 如何使用java正确使用rsa私钥生成签名?

rsa - 使用 at_hash 验证访问 token

python-3.x - 使用 psycopg2 将 git 修订散列 (SHA-1) 写入 PostgreSQL 数据库

java - 如何在 Java 中生成与 Python 示例等效的 HMAC?

c# - 模数的偶数/奇数循环计数

c# - 是否可以在没有昂贵的 OID 查找的情况下使用 RsaCryptoServiceProvider 调用 SignHash 和 VerifyHash?