微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#:将私钥从 XML 转换为 PEM 并将结果保存在文件中

如何解决C#:将私钥从 XML 转换为 PEM 并将结果保存在文件中

我还没有找到将私钥从 XML 格式转换为 C# 中的 PEM 的简单实现。我查看了不同的线程,但我无法从中得到任何东西。

这是我的私钥

<RSAkeyvalue><Modulus>4o+sD++qc7emmZaa+KRCaHSNKoxSzfOEcUwm/ICAN2guEriPrYJOoOSHWm/QWlhJxNgxfAvQpTXcEp9IGm0Nd7Y6rNn2+BMOx/r0BR7E3hNPel+eFOSDxiwQg17lujBpsEVIqJpt10FrPr9T+IUaCs9WfpFIBO8tzZkyV9qQPXE=</Modulus><Exponent>AQAB</Exponent><P>8W7gBjRZovnKdQSiv45P1QLE9lx+k/yjTJ/mWa3nhaGC7U0o1/rPP+A1gy+FSYxH6Reg8v08w2bsSqBL+IGS4w==</P><Q>8DsWyFyM+fp5Tt0WQXsgQPHByidIyzOc4C9XgjO1T34qjdyO10yS+9Se22PZxf5AWqmEyyaDfoFrKJ/eIo3amw==</Q><DP>d23Ubd1JlgAgsWAYrc9VGFblXcUFbGkl0oqqpSQMiiMKJB7uHGDaUouzjPBd67L0A48HtAunGjX4nzXKPuTB5w==</DP><DQ>d/PJSHqOGjQrZmmWt1OXo1YUAbDj9DLtXjPFakoPeoXxEazT1kVyDzT3rWyKTQbLc3m5yQaOGhjdPQe2j2JtiQ==</DQ><InverseQ>m2t4wHSYOE+lu/WHUpYoF9cXGmlLG3uSzvUbGwpkPMCK85yjyAx+lDbkc/Hf0IlHCSeMozh7slaG9HkNLAtqPw==</InverseQ><D>dCe0z3bQrP/l1Qah7VhJs8QNnALVcUGoZW3ljw9SrRV8iZyWDR8BsPt5aaRp7efV6lXtCOwFzK4QZnvDO8ktXXvdtXeinNEwRxj1CJE1xu5d8wlfMt9oMwrrK/g/480p5MQ7mMj2roh/PYrdM9BSA1wM9b1Kmus68ZgC0fGc2QE=</D></RSAkeyvalue>

这就是我想要的:

-----BEGIN RSA PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOKPrA/vqnOxJjGW
mvikQmh0jSqMUs3zhHFMJvyAgDdoLhK4j62CTqDkh1pv0FpYScTYMXwL0KU13BKf
SBptDXe2OqzZ9vgTDsf69AUexN4TT3pfnhTkg8YsEINe5bowabBFSKiabddBaz6/
U/iFGgrPVn6RSATvLc2ZMlfakD1xAgMBAAECgYB0J7TPdtCs/+XVBqHtWEmzxA2c
AtVxQahlbeWPD1KtFXyJnJYNHwGw+3lppGnt59XqVe0I7AXMrhBme8M7yS1de921
d6Kc0TBHGPUIkTXG7l3zCV8y32gzCusr+D/jzSnkxDuYyPauiH89it0z0FIDXAz1
vUqa6zrxmALR8ZzZAQJBAPFu4AY0WaL5ynUEor+OT9UCxPZcfpP8o0yf5lmt54Wh
gu1NKNf6zz/gNYMvhUmMR+kXoPL9PMNm7EqgS/iBkuMCQQDwOxbIXIz5+nlO3RZB
eyBA8cHKJ0jLM5zgL1eCM7VPfiqN3I7XTJL71J7bY9nF/kBaqYTLJoN+gWson94i
jdqbAkB3bdRt3UmWACCxYBitz1UYVuVdxQVsaSXSiqqlJAyKIwokHu4cYNpSi7OM
8F3rsvQDjwe0C6caNfifNco+5MHnAkB388lIeo4aNCtmaZa3U5ejVhQBsOP0Mu1e
M8VqSg96hfERrNPWRXIPNPetbIpNBstzebnJBo4aGN09B7aPYm2JAkEAm2t4wHSY
OE+lu/WHUpYoF9cXGmlLG3uSzvUbGwpkPMCK85yjyAx+lDbkc/Hf0IlHCSeMozh7
slaG9HkNLAtqPw==
-----END RSA PRIVATE KEY-----

我使用 .ToXmlString 生成私钥和公钥,如下所示:

// generate the public key
string publicKey = rsa.ToXmlString(false); // false to get the public key
// generate the private key
string privateKey = rsa.ToXmlString(true); // true to get the private key

并将结果保存为 XML 文件,如下所示

File.AppendAllText(mainDir + "publicKey.xml",publicKey); // save publicKey  
File.AppendAllText(mainDir + "privateKey.xml",privateKey); // save privateK

最终我想使用 OpenSSL 使用私钥解密数据。因此,如果我的私钥是 PEM 格式会更容易。

openssl rsautl -decrypt -inkey privateKey.pem -in encryptedLicense.dat -out decryptedLicense.dat

C# 支持 XML 到 PEM 吗?如果是这样,我该怎么做?

如果有人可以为我提供解决方案,我将不胜感激。提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。