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