c#rsa加密java解密_在C#中使用RSA加密和Java中的解密时出现填充错误

当前,当我使用Java解密用C#生成的Base64编码的RSA加密字符串时,我收到以下错误:

javax.crypto.BadPaddingException: Not PKCS#1 block type 2 or Zero padding

通过.NET和Java进行交换之间的设置过程是通过在.NET密钥存储区中创建一个私钥,然后从提取的PEM文件中创建的,使用keytool创建的具有私钥的JKS版本。 Java加载已经创建的JKS,并将Base64字符串解码为字节数组,然后使用私钥解密。

这是我在C#中创建加密字符串的代码:

public string Encrypt(string value) {

byte[] baIn = null;

byte[] baRet = null;

string keyContainerName ="test";

CspParameters cp = new CspParameters();

cp.Flags = CspProviderFlags.UseMachineKeyStore;

cp.KeyContainerName = keyContainerName;

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);

// Convert the input string to a byte array

baIn = UnicodeEncoding.Unicode.GetBytes(value);

// Encrypt

baRet = rsa.Encrypt(baIn, false);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值