java的rsa加密不对_RSA加密 C# 和 JAVA无法互通

C#利用xml公钥进行加密

Java利用私钥进行解密

Java总是无法解密成功

在网上找了各种开源的实现

xml 转 pem啊

pksc1 转 PKSC8 啊

不是报超长的错,就是Decryption error

C# 端的代码是不许更改的,只能改java去兼容

密钥是随机生成的,随便拿其中一个举例子

/**

* xml私钥

* 要解密的字符串

*/

public static string RSADecrypt(string xmlPrivateKey, string decryptString)

{

try

{

RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider();

rSACryptoServiceProvider.FromXmlString(xmlPrivateKey);

byte[] rgb = Convert.FromBase64String(decryptString);

byte[] bytes = rSACryptoServiceProvider.Decrypt(rgb, fOAEP: false);

return new UnicodeEncoding().GetString(bytes);

}

catch(Exception ex)

{

throw ex;

}

}

public static string RSAEncrypt(string xmlPublicKey, string encryptString)

{

try

{

RSACryptoServiceProvider rSACryptoServiceProvider = new RSACryptoServiceProvider();

rSACryptoServiceProvider.FromXmlString(xmlPublicKey);

byte[] bytes = new UnicodeEncoding().GetBytes(encryptString);

byte[] inArray = rSACryptoServiceProvider.Encrypt(bytes, fOAEP: false);

return Convert.ToBase64String(inArray);

}

catch(Exception ex)

{

throw ex;

}

}

公钥

x2wFUbicePuwimH3NI4fJtnNgEHRY8AFSlZY8DhBvOdXq15vA0/UFz6vbO3tnDQxGqehzOwhaYd6e6Z+ZmN9kUnuIqTxFlsKxpDYvXfZjuwM+kfpJBrx6TxFEACOspdXqeYzAZDdGThu2CqTsgjo8ZY0EJClVK1n29RcnD6THtGAiIAwUWWhu+RhXYQ0822RxQwDIGphAqnnyJwpjmllsQ==

AQAB

私钥

x2wFUbicePuwimH3NI4fJtnNgEHRY8AFSlZY8DhBvOdXq15vA0/UFz6vbO3tnDQxGqehzOwhaYd6e6Z+ZmN9kUnuIqTxFlsKxpDYvXfZjuwM+kfpJBrx6TxFEACOspdXqeYzAZDdGThu2CqTsgjo8ZY0EJClVK1n29RcnD6THtGAiIAwUWWhu+RhXYQ0822RxQwDIGphAqnnyJwpjmllsQ==

AQAB

7Izxh8oFQfHxoPDAlp/KzAX/CbQuK8gl5YirObf0eb6sKTZdpcAHYcinD4Ihem3zkV/hm1eOZ/341BZDDj6120IxpVfXx0RgbeqPvg92AgM=

19GSiY/XCM4ZxKZo8+UUE+qnRMWeC0rC+cQevjPzlmMIRdbO0B+NYz/Uu72EA3KKS5gfI3FRbYGCtvduQlycoKVsUSObtETceOpCiv75pTs=

JtKrAWJCoqQWyBc7RH1NR1bkmK8dtMnQjm9zyrFKSoDkuI7Xp9BwZbgM0xrEa9eH1iAqYthn4uFn6UcOElRwfF/Mzhowq9+pA+EvXj4jXAk=

iakhCmPYqsIkB56J9YBaZTXZCfHvlI5UfdKONY6XwoZawYl6E6D8o6EUhcgly7kk44Ed45KleO8SPLjo+KVwNrwtsje/WqZN50atuVFYVf8=

NPsUuCuEhUqTDnS61a78H1Bnd/He8ztIzYDo+t6pM0BbRrTM2J+fPYfJSF0nRVj7TuY+5GcQZRCoRJGq1y+nTxEQdLWArZtSnlGEyuPNum0=

MZDOraYl9ggQtARvbfeZFI3z/tndEl7qsbROfL5u0GXrq2NYUkloHLLu5TMp6LYsMkTR+V4DW/hZYBxctFQsJI1si93VMkpEnl/oDweX4mamz1hY7SKvZ5SHJsDCgB6mWzvfMEOXRGBH/EtxzEfju5+Q2Svwg7kw1zjfQFWoKwqcz9BtRpKC1cz033g6Ww+4WoX8zI+1L34BS5a0nvpS9Q==

要被加密的文本

0-GjkYclhkx2MxneE1CIWqEma6dU-ivFS1UWp4r2X4EmkH1AKtXiAU5vSfTAIkuH

C# 调用encrypt方法后得到的其中一次结果

wwEw4f-NtvrCAW+Pbrg6fvdJVX0EIShlDZ4C1p47glbD-BcTwmftO5IXukqBvMRXJzzajGAmLuzIe+GOJo-vhF5AOeVo06StdXMMWIpqsow4rZzZiq+7tbYw5jw8c2fZzyyNqMVIM4wkz+lyTNrnxh7kYY2mXHSaMxAS5pQNcMOZSMMzD9pSPhG5+imQT2mbZhFpbFE9LDPyaKk2CUdqjg==

这一段扔到java程序里次次报错

网上找了各种开源实现都没有用,是哪里的编码不对吗?

C#端对文本进行了一次Unicode编码,这个会导致生成的密文java端无法解析吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值