api接口rsa加密

在日常工作中,需要服务器端暴露多个api接口供给移动端(ios,android)调用.

在使用过程中发现,ios端的加密发送到服务器端解密正常,但是android的加密数据服务器端会出现异常.

抛出“javax.crypto.BadPaddingException: Blocktype”异常

原解密方法

Cipher cipher = Cipher.getInstance("RSA");

根据网上的方法使用而不能使用跟ios端一样的解密方法

Cipher cipher = Cipher.getInstance("RSA",new BouncyCastleProvider());

进行解密,发现解密耗时过长.

经过查询发现,出现出现这样的问题是由于android和java的rsa加密填充方式不同导致.

问题原因已经找到,在网上找寻了很多方法,经过测试发现只需要调整一下android端的加密的填充方式即可

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");

服务端可以直接使用

Cipher cipher = Cipher.getInstance("RSA");

即可.

 

转载于:https://my.oschina.net/bddiudiu/blog/790291

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值