2

我已经生成了 RSA 公钥:

 RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(4096);

 var pub_key = rsaProvider.ExportParameters(false); // export public key
 var priv_key = rsaProvider.ExportParameters(true); // export private key

我需要一种将 pub_key 解码为的方法,base64以便我可以发送它,任何建议

4

3 回答 3

2

当您说 Base64 时,您的意思是您需要 Base64 PEM 格式的公钥吗?如果是这样,请考虑使用 BouncyCastle。

var kp = [Org.BouncyCastle.Security.DotNetUtilities].GetKeyPair(rsaProvider);
using (var sw = new System.IO.StringWriter())
{
    var pw = new Org.BouncyCastle.OpenSsl.PemWrite(sw);
    pw.WriteObject(kp.Public);
    var pem  = sw.ToString();
    return pem;
}
于 2013-10-09T20:37:38.280 回答
1

目前尚不清楚您需要什么,但我猜您正在寻找序列化密钥。在这种情况下,您可以使用RSA.ToXmlString() method. 如果您确实需要对其进行 base64 编码,那么您可以使用 Nickolay Olshevsky 的答案中的方法来进一步编码 XML 字符串。

于 2013-04-29T23:26:07.143 回答
0

在 .NET 中有一个内置函数可以转换为 Base64:http: //msdn.microsoft.com/en-us/library/dhx0d524.aspx

于 2013-04-29T13:00:17.723 回答