使用 X509 证书解密

Using a X509 certificate for decryption

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

我知道的有:

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

此信息还不够。此数据是用于加密数据的 public 密钥。 RSAParameters

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

.NET API 的独特之处在于您似乎可以使用证书进行解密。事实并非如此。证书和私钥被视为一个;只有 if 包含私钥 then 你才能真正解密。我个人认为这是一个小设计错误。


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

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

你当然无法解密;私钥仍然会丢失。


注意签名是 256 untitled bytes.