首页 新闻 会员 周边 捐助

C# RSA 加密密钥形式必须是XML格式的吗

0
悬赏园豆:10 [待解决问题]

 C#写的RSA加密,在网上查找了很多资料,都需要将密钥转换成XML格式,如下:

public void RSAKey(out string xmlKeys, out string xmlPublicKey)
        {
            System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            xmlKeys = rsa.ToXmlString(true);
            xmlPublicKey = rsa.ToXmlString(false);

         }

但是,另一方密钥形式是这种格式的(java写的):

"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHIC/1F21AZQFan+GCkDS86PC/\nXeIkHmT8zAQaPPBJ62ta5V62QNq/hT+cRb2mrvf8WkaxhShHsdsbSaRjIdU4BlWE\n0aG4UjGJKstkCH725qEg7Oaa2Xroe6VSXZj1uUXnJREIbpcmbu0adszJ9NT1K57x\nN4RR2iiuGLqlsYmNvwIDAQAB\n-----END PUBLIC KEY-----\n"

导致,我加密的密文在他那方无法解密,大家有没有好的解决方法,C#必须的XML格式吗,而且我每次XML后,密钥不一样,即不是固定的。求解!!急!

天水Lv的主页 天水Lv | 初学一级 | 园豆:41
提问于:2013-08-26 14:17
< >
分享
所有回答(14)
0

可以不用 XML,可以读取字节数组,然后编码成 BASE64:

http://msdn.microsoft.com/zh-cn/library/vstudio/system.security.cryptography.rsacryptoserviceprovider.exportcspblob.aspx

http://msdn.microsoft.com/zh-cn/library/vstudio/system.security.cryptography.rsaparameters.aspx

 

你这样 new RSACryptoServiceProvider 的话是有问题的,你应该指定一个 CspParameter .

http://msdn.microsoft.com/zh-cn/library/vstudio/system.security.cryptography.rsacryptoserviceprovider.aspx

仔细看这里的例子,基本包括了你所有的需求。

Launcher | 园豆:45050 (高人七级) | 2013-08-26 14:29
0

参考园子里的一篇博文:RSA加密算法实现以及C#与java互通加解密

dudu | 园豆:30778 (高人七级) | 2013-08-26 22:15
0

收藏。我也碰到相同的问题了

for.life | 园豆:202 (菜鸟二级) | 2015-02-11 15:01
0

三年了  楼主解决了吗

℃7O八落~的点滴 | 园豆:181 (初学一级) | 2016-07-05 15:24

四年了,楼主解决了吗

支持(0) 反对(0) 反骨仔 | 园豆:444 (菜鸟二级) | 2017-02-14 12:17
0

四年了,楼主解决了吗

反骨仔 | 园豆:444 (菜鸟二级) | 2017-02-14 12:17
0

四年了。。。楼主解决了麻烦共享下啊。。。。我也碰上相同问题了啊~~~!

长沙大鹏 | 园豆:214 (菜鸟二级) | 2017-06-23 16:10
0

我来了,找了好久这个答案,

直接通过BouncyCastle提供的第三方类库,可以生成RSA的PEM版的秘钥和公钥(js可以使用),C#后台如果需要使用可以转换成XML的秘钥和公钥。

https://zuoluo11.github.io/2017/11/29/RSA%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86-c-%E4%B8%8Ejs%E7%89%88/

zuoluo11@qq.com

zuoluo11 | 园豆:8 (初学一级) | 2017-11-29 11:16
0

6年了,解决了吗?

just keep moving | 园豆:33 (初学一级) | 2019-08-14 09:46
0

解决了吗,小弟也是遇到了

小菜鸟_code | 园豆:202 (菜鸟二级) | 2019-11-05 17:37
0

7年了,解决了吗?

新城已无在少年 | 园豆:202 (菜鸟二级) | 2020-11-03 11:32
0

8年了,解决了吗?

佬唐 | 园豆:205 (菜鸟二级) | 2021-02-08 11:14
0

难搞,我也遇到,C#写的RSA加密,都需要将密钥转换成XML格式,但是对方是java的,提供公钥并不是XML格式的,我怎么用对方的公钥进行加密呢

beyondcc | 园豆:202 (菜鸟二级) | 2021-05-08 16:01
0

C# 调用BouncyCastle生成PEM格式的私钥和公钥:
https://blog.csdn.net/u012875794/article/details/79739667

全面回憶 | 园豆:202 (菜鸟二级) | 2022-04-27 08:54
0

10年了,解决了吗?

鸿焱 | 园豆:202 (菜鸟二级) | 2023-09-26 14:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册