【问题标题】:Convert RSA PEM to XML .net framework将 RSA PEM 转换为 XML .net 框架
【发布时间】:2021-02-15 06:48:01
【问题描述】:

有没有一种方法可以在不使用 BouncyCastle 等第三方库的情况下将 RSA PEM 公钥转换为 XML。到目前为止,我了解System.Security.Cryptography 只能识别 xml sring。 RSA.FromXmlString(PublicKey)

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArqNpTjJR6+aP7dYNTqIU
OPcpTirmN5JbS+ZL255MByiHWn7AF9DU5Q99TROtGbtqySuyzv3fu28YRRSIwK/J
kMLb50AEe3XvnUoZhN86QLCie3iFIq8kpELmX5v2GxCt15ks+cwGsYGYGGwTZNo2
2Y4W1cRgVBLhhbEbuvybKddi7UsmhJlbvLqinUUGCJFkgCAyIbYYowlUjZhbVjp9
DGiaF7EwpcbcERckYXwnKheejWG0chHL9Nt9YldW33Vjgb6s3A9GNF80XNuqT6GJ
T3h3Ig/aoK/9AIhVvc53atCJEgRnjKgfkYPr3SQoKLH7HDCq2TOwN9N5Mbp0QNvb
kwIDAQAB
-----END PUBLIC KEY-----

提前致谢

更新

在这里找到答案。

stormwild/opensslkey.cs

【问题讨论】:

  • 如果是“一次性”转换,我会使用像 superdry.apphb.com/tools/online-rsa-key-converter 这样的在线服务来实现。如果您想离线执行此任务(尽管它是公钥),您可以使用 openssl 来完成此任务。如果您想以编程方式执行此操作,您应该编辑您的问题并添加一个 sample 公钥,因为有(最少)2 种不同的 PEM 编码。
  • @MichaelFehr 感谢您的评论。我想以编程方式完成并更新问题。
  • .NET Core 容易,.NET Framework 更难,这就是为什么 BouncyCastle 一般用于后者。主要问题是密钥导入。例如,如何使用车载方式进行导入的示例是方法opensslkey.DecodeX509PublicKey,它将DER编码的密钥导入RSACryptoServiceProvider实例。对于导出,可以使用RSA.ToXmlString
  • @Topaco 感谢您的回答。我刚刚找到了 opensslkey 源代码。并计划使用它,因为它是开源的
  • @dins88 呵呵,Bouncy Castle 是 Meritware,对吧?您无法获得比这更多的开源代码。但是,您可以回答自己的问题而不是编辑它。

标签: .net encryption rsa


【解决方案1】:

如果您使用的是 .NET Core 或 .NET 5+,则 RSA 类上有一个有用的 ToXmlString() 方法。

var privateKey = await File.ReadAllTextAsync("mypemfile.pem");
var rsa = RSA.Create();
rsa.ImportFromPem(privateKey.ToCharArray());
var d = new XmlDocument();
d.LoadXml(rsa.ToXmlString(true));
d.Save("mypemfile.xml");

【讨论】:

猜你喜欢
  • 2017-03-27
  • 2011-04-03
  • 1970-01-01
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
  • 2010-11-03
  • 2017-07-26
相关资源
最近更新 更多