本文介绍了如何仅在C#中获取RSACryptoServiceProvider公钥和私钥的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在下面的代码下运行,仅获取公共密钥和私有密钥,但似乎它输出了整个XML格式.我只需要输出公钥和私钥演示
I am running below code to get public and private key only, but it seems it outputs the whole XML format. I only need to output the keys as shown in Public and Private Key demo
static RSACryptoServiceProvider rsa; private RSAParameters _privateKey; private RSAParameters _publicKey; public RSACrypto() { rsa = new RSACryptoServiceProvider(2048); _privateKey = rsa.ExportParameters(true); _publicKey = rsa.ExportParameters(false); } public string GetPublicKeyString() { var sw = new StringWriter(); var xs = new XmlSerializer(typeof(RSAParameters)); xs.Serialize(sw, _publicKey); return sw.ToString(); } public string GetPrivateKeyString() { var sw = new StringWriter(); var xs = new XmlSerializer(typeof(RSAParameters)); xs.Serialize(sw, _privateKey); return sw.ToString(); } 推荐答案Bouncycastle C#库具有一些帮助程序类,可以使此操作相对容易.不幸的是,它没有得到很好的记录.这是一个示例:
The Bouncycastle C# library has some helper classes that can make this relatively easy. It is not well documented unfortunately. Here is an example:
using System; using System.IO; using System.Security.Cryptography; using Org.BouncyCastle.OpenSsl; using Org.BouncyCastle.Security; namespace ExportToStandardFormats { class MainClass { public static void Main(string[] args) { var rsa = new RSACryptoServiceProvider(2048); var rsaKeyPair = DotNetUtilities.GetRsaKeyPair(rsa); var writer = new StringWriter(); var pemWriter = new PemWriter(writer); pemWriter.WriteObject(rsaKeyPair.Public); pemWriter.WriteObject(rsaKeyPair.Private); Console.WriteLine(writer); } } }更多推荐
如何仅在C#中获取RSACryptoServiceProvider公钥和私钥
发布评论