在 C# 中将 asn1 转换为 base64
有没有办法使用 C# 代码将 ASN.1 编码的 X509Certificate 私钥转换为 Base64 格式?
Is there a way to convert an ASN.1 encoded private key of X509Certificate into Base64 format, using C# code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
再想一想 - 可能我在第一次回答时没有理解你的问题。
如果您想将关键数据转换为类似于 .pem 文件的格式,您需要执行类似于 中的操作关于生成 .pem 文件的文章
On second thought - probably I didn't understood your question on first answer.
If you wanted to convert key data to format similar to .pem files you need to do something similar as in this article about generating .pem files
你应该尝试结合在一起
X509Certificate2.PrivateKey 属性
和
RSA.FromXmlString 方法。
我认为您可以使用 RSA.FromXmlString 从 ASN.1 加载数据,然后将 X509Certificate2.PrivateKey 属性设置为生成的 RSA 对象。之后,您可以使用 X509Certificate2 Export() 方法之一导出密钥。
如果您只需要将 ASN.1 DER 编码密钥转换为 Base64 (.pem) 格式,则只需将二进制字节数组编码为 Base64(使用 System.Convert.ToBase64String())并为结果添加页眉/页脚:
You should try to combine together
X509Certificate2.PrivateKey Property
and
RSA.FromXmlString Method.
I think that you can load data from ASN.1 with RSA.FromXmlString and then set X509Certificate2.PrivateKey property to resulting RSA object. After that you can use one of X509Certificate2 Export() methods to export your key.
If you just need to convert ASN.1 DER encoded key to Base64 (.pem) format, you just need to encode binary byte array to Base64 (with System.Convert.ToBase64String()) and add header/footer for result: