【发布时间】: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-----
提前致谢
更新
在这里找到答案。
【问题讨论】:
-
如果是“一次性”转换,我会使用像 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