110,538
社区成员
发帖
与我相关
我的任务
分享
RsaPrivateCrtKeyParameters key;
using (var sr = new StreamReader("e:\\key_pk8.pem"))
{
var pemReader = new Org.BouncyCastle.OpenSsl.PemReader(sr);
key = (RsaPrivateCrtKeyParameters)pemReader.ReadObject();
}
var p = new RSAParameters {
Modulus = key.Modulus.ToByteArrayUnsigned(),
Exponent = key.PublicExponent.ToByteArrayUnsigned(),
D = key.Exponent.ToByteArrayUnsigned(),
P = key.P.ToByteArrayUnsigned(),
Q = key.Q.ToByteArrayUnsigned(),
DP = key.DP.ToByteArrayUnsigned(),
DQ = key.DQ.ToByteArrayUnsigned(),
InverseQ = key.QInv.ToByteArrayUnsigned(),
};
var rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(p);
using (var sw = new StreamWriter("e:\\key.xml"))
{
sw.Write(rsa.ToXmlString(true));
}
输出的就是 RSACryptoServiceProvider 可以用的 xml 格式的密钥。