使用X509证书进行解密

时间:2017-06-22 16:52:13

标签: c# encryption rsa x509

我有一些在中央许可站使用的X509v3证书的数据。我的问题是,以下信息量足以让我使用C#代码解密数据?此外,证书属性如何导入项目?我是否必须创建证书文件才能继续?

我知道的是:

  • 主题
  • 序列号
  • 发行人
  • “根CA”
  • 公钥算法:“rsaEncryption”
  • RSA模数,128字节
  • RSA公钥指数
  • X509v3扩展密钥用法:“关键”
  • 签名算法:“md5WithRSAEncryption”,后跟256个无标题字节
  • SHA1指纹

我没有任何证书文件。对不起,如果已经回答了类似的问题,不幸的是我无法找到像我这样的问题。

2 个答案:

答案 0 :(得分:2)

这些信息还不够。此数据是加密数据的公钥。 RSAParameters

答案 1 :(得分:2)

不,您的数据还不够。首先,这是所有 public 数据。它不包含私钥。私钥用于解密或签名生成。公钥用于加密和签名验证。

.NET API的特殊之处在于您似乎可以使用证书进行解密。实际情况并非如此;证书和私钥被视为一个;只有如果包含私钥然后您才能实际解密。我个人认为这是一个小的设计错误。

原则上,您可以根据信息创建证书。基本上,您必须生成具有相同信息的证书,然后替换颁发者和签名字段。

然而,这不是心灵的弱者;在你尝试之前我建议你有几年的经验。如果上面列表中缺少任何信息,您将无法获得有效的证书/签名,并且您不会收到任何错误的警告,只是失败。你有一个优势;如果签名验证或指纹与您获得的签名相同,那么您知道您已成功。

当然,你无法解密;私钥仍然缺失。

请注意,签名是256 untitled bytes