Android RSA与Java RSA加密不同标准产生问题的解决方法

最近做一个基于android的客户端,客户端与Java服务器(MyEclipse自带的Tomcat服务器)的通信需要实施安全方案。而本人是使用非对称密钥来对数据进行加密的,客户端用公钥加密,服务器用私钥解密。因此本人就用非对称密钥RSA算法来实施。而本人在最开始的时候,在android平台上与服务端初始化Cipher的时候都是使用一下这种方式:

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
   cipher.init(Cipher.ENCRYPT_MODE, key);
   int blockSize = cipher.getBlockSize();

在这种情况下,android平台的客户端可以加密成功。而到了服务器这一端却无法解密,却抛出了以下异常:

“java.lang.Exception: Blocktype mismatch: 0”

在网上搜索了很多资料,有很多解决AndroidRSA与Java加密标准不同产生问题的方法。但是大部分解决方法都是说把android客户端和tomcat服务器上方法getInstance的参数写成统一形式,如:“RSA/ECB/PKCS1Padding”或者“RSA/None/PKCS1Padding”。但是当本人改成相同形式的时候,还是出现上面的相同的异常:

“java.lang.E

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值