基础64的RSA公钥

时间:2013-04-29 12:56:24

标签: c# rsa

我已经生成了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所以我可以发送它,任何建议

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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