用C#中的* .Pem文件解密字符串

时间:2011-12-23 13:55:59

标签: c# encryption cryptography pem x509certificate2

好的,我有一串文字,用Base64编码。

我想将它从Base64解码为字节数组,然后用我的私钥解密。我的私钥是* .pem文件。我迷路了!

我想我需要声明一个字节数组,在我的* .pem的--- BEGIN ---和--- END ---部分之间抓取文本,并将其从基数64字符串转换为我的字节数组的结果。

然后我需要声明一个X509Certificate2,并使用带有字节数组和一串文本的构造函数,字节数组是我的私钥,文本字符串是我的密码,如下所示:

byte[] myprivateKey = Convert.FromBase64String("BASE 64 ENCODED PRIVATE KEY GOES HERE");
X509Certificate2 myPem = new X509Certificate2(myprivateKey, "MY PASSPHRASE");

但是,此时我收到以下错误:

  

找不到请求的对象。

我是否正朝着正确的方向前进或离开?我需要做什么?

1 个答案:

答案 0 :(得分:1)

X509Certificate2将无法从 PEM base64编码的文件中读取私钥。您需要读取除证书之外的私钥,然后为其分配PrivateKey属性。

有关详细信息,请参阅how to get private key from PEM file?