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后,密钥不一样,即不是固定的。求解!!急!
可以不用 XML,可以读取字节数组,然后编码成 BASE64:
http://msdn.microsoft.com/zh-cn/library/vstudio/system.security.cryptography.rsaparameters.aspx
你这样 new RSACryptoServiceProvider 的话是有问题的,你应该指定一个 CspParameter .
仔细看这里的例子,基本包括了你所有的需求。
收藏。我也碰到相同的问题了
三年了 楼主解决了吗
四年了,楼主解决了吗
四年了,楼主解决了吗
四年了。。。楼主解决了麻烦共享下啊。。。。我也碰上相同问题了啊~~~!
我来了,找了好久这个答案,
直接通过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
6年了,解决了吗?
解决了吗,小弟也是遇到了
7年了,解决了吗?
8年了,解决了吗?
难搞,我也遇到,C#写的RSA加密,都需要将密钥转换成XML格式,但是对方是java的,提供公钥并不是XML格式的,我怎么用对方的公钥进行加密呢
10年了,解决了吗?