C# 在C中将asn1转换为base64#

C# 在C中将asn1转换为base64#,c#,certificate,asn.1,x509certificate2,C#,Certificate,Asn.1,X509certificate2,有没有一种方法可以使用C代码将X509Certificate的ASN.1编码私钥转换为Base64格式?您应该尝试组合在一起 和 我认为您可以使用RSA.FromXmlString从ASN.1加载数据,然后将X509Certificate2.PrivateKey属性设置为结果RSA对象。之后,可以使用X509Certificate2 Export()方法之一导出密钥 如果只需要将ASN.1 DER编码键转换为Base64(.pem)格式,则只需将二进制字节数组编码为Base64(使用Syste

有没有一种方法可以使用C代码将X509Certificate的ASN.1编码私钥转换为Base64格式?

您应该尝试组合在一起 和

我认为您可以使用RSA.FromXmlString从ASN.1加载数据,然后将X509Certificate2.PrivateKey属性设置为结果RSA对象。之后,可以使用X509Certificate2 Export()方法之一导出密钥

如果只需要将ASN.1 DER编码键转换为Base64(.pem)格式,则只需将二进制字节数组编码为Base64(使用System.convert.ToBase64String()),并为结果添加页眉/页脚:

-----BEGIN RSA PRIVATE KEY----- encoded key data goes here -----END RSA PRIVATE KEY----- -----开始RSA私钥----- 编码的密钥数据在这里 -----结束RSA私钥-----
再想一想——也许我不明白你在第一个答案中的问题。
如果您想将关键数据转换为类似于.pem文件的格式,则需要执行类似于此的操作

您目前有什么?原始二进制?infoset xml的名称?@Marc Gravell:XmlString和原始字节。谢谢。是的,我知道这一点——但是Export()函数会导出整个证书,我只需要私钥。我相信,如果您有私钥的字节数组,您只需要将其编码为base64(可能使用System.Convert.ToBase64String())并向其添加页眉和页脚。断开的链接:-0