如何仅在C#中获取RSACryptoServiceProvider公钥和私钥

编程入门 行业动态 更新时间:2024-10-23 11:20:46
本文介绍了如何仅在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公钥和私钥

本文发布于:2023-11-10 00:48:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1573910.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:公钥   RSACryptoServiceProvider

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!