1. 出错描述:服务RSA解密抛出javax.crypto.BadPaddingException: Decryption error

2.出错原因:Android系统使用的虚拟机(dalvik)跟SUN标准JDK是有所区别的,其中他们默认的RSA实现就不同。即Android端用Cipher.getInstance("RSA")方法进行加密时,使用的provider是Bouncycastle Security provider,Bouncycastle Security provider默认实现的是“RSA/None/NoPadding”算法,而服务器(PC)端用Cipher.getInstance("RSA")进行解密时,使用的是Sun的security provider,实现的是“RSA/None/PKCS1Padding”算法,所以,解密时会失败。

3. 解决方法:Android端的加密算法如下

/**

* 公钥加密

* @param data 待加密数据

* @param key 密钥

* @return byte[] 加密数据

* */

public static byte[] encryptByPublicKey(byte[] data,String key) throws Exception{

//解密密钥

byte[] keyBytes = decryptBASE64(key);

//实例化密钥工厂

KeyFactory keyFactory=KeyFactory.getInstance(KEY_ALGORITHM);

//初始化公钥

//密钥材料转换

X509EncodedKeySpec x509KeySpec=new X509EncodedKeySpec(keyBytes);

//产生公钥

PublicKey pubKey=keyFactory.generatePublic(x509KeySpec);

//数据加密

Cipher cipher=Cipher.getInstance("RSA/None/PKCS1Padding");//Android端使用

cipher.init(Cipher.ENCRYPT_MODE, pubKey);

return cipher.doFinal(data);

}

java android rsa加密解密_Android RSA数据加密与Java服务端RSA私钥解密出错问题相关推荐

  1. C++客户端和java服务端互相加解密

    这段时间在公司做一个APP和移动网关通信加密的项目,本来是想采用https或者openssl来加密通道,但考虑到数据本身的安全性问题,还是打算自己编写加解密算法. 一.流程 1.客户端生成AES密钥和 ...

  2. android 仿微信demo————微信消息界面实现(服务端)

    android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...

  3. JAVA毕业设计Vue.js网上书城管理系统设计与实现服务端计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计Vue.js网上书城管理系统设计与实现服务端计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计Vue.js网上书城管理系统设计与实现服务端计算机源码+lw文档+系统+调试部 ...

  4. java毕业设计融呗智慧金融微资讯移动平台服务端源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计融呗智慧金融微资讯移动平台服务端源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计融呗智慧金融微资讯移动平台服务端源码+lw文档+mybatis+系统+my ...

  5. Android:在同一WiFi下通讯(局域网下服务端和客户端通讯)

    ​ 看了几天的Android WiFi通讯,总结一下,并附相关Demo(也是仿网上做的),建议收藏 ​ 两台设备(手机与手机,手机与硬件都一样)在同一WiFi下通讯,用的是TCP/IP协议,那我们应如 ...

  6. 急急急~!求一款源码~!背背恋Android约会交友APP完整源码(客户端+服务端)~!

    急急急!求一款源码!背背恋Android约会交友APP完整源码(客户端+服务端)~!

  7. uniApp微信小程序唤出授权头像昵称(微信授权登录)弹窗,及服务端用户信息解密注意事项

    头像昵称弹窗弹出条件:button授权按钮 + uni.getUserProfile API请求 简单唤醒示范案例: 1.H5部分 <text class="loginsubmitbo ...

  8. python3 rsa加密_【Python】Python3 实现 JS 中 RSA 加密的 NoPadding 模式

    前因后果之哗啦啦废话连篇: 这几天本人在 Python 做某网站登陆的时候,发现其登陆时用户名和密码被加密了 F12 仔细看了一下,发现是调用了一个 js 的 rsa 加密库,页面 dom 中有 rs ...

  9. vue 、前端rsa加密遇到的问题,message too long for RSA

    需求:对登录密码,修改密码过程进行加密,如RSA,3DES等,后台要求,最终选择了RSA加密 RSA加密:公钥和私钥(非对称性加密) 3DES加密:密钥加密 (对成型加密) 第一步:安装jsencry ...

最新文章

  1. C++基础知识(二)--左值右值--逻辑表达式求值优化--逗号运算符与表示式--输入输出格式控制...
  2. 使用jstack 发现死锁
  3. 《A Berkeley View of systems challenges for AI》总结
  4. Keil升级了,Keil Studio 来了!
  5. ES6-10 super、4种遍历方式、原型、symbol遍历
  6. 解密SVM系列(二):SVM的理论基础(转载)
  7. 弹弹堂sf发布网_私服冒险岛,新开私服冒险岛,心动sf冒险岛发布网,最新开的私服冒险岛应该如何快速的获取魅力呢?...
  8. 杨振宁讲(经典)数学笑话兼论数学和物理的关系
  9. Lintcode61 Search for a Range solution 题解
  10. python资料-100G Python从入门到精通全套资料!
  11. Linux学习之安装jdk
  12. linux之VMware安装Centos7
  13. WordPress插件:WP-China-Yes解决国内访问官网慢的方法
  14. 免费的Access数据库员工管理系统下载-IT技术网站 企业人员管理系统源码
  15. 【电子签章】HTML格式合同转化成PDF文件
  16. java 多线程m3u8下载
  17. 轻量级web api_API接口管理,这15种开源工具助你管理API
  18. JS eval json unexpected token :
  19. 微信公众平台消息接口开发(20)图片识别之人脸识别
  20. 合成大西瓜自制版教程

热门文章

  1. python读取sqlserver的数据_Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例...
  2. java解析html jsoup_2020-06-02 jsoup java解析html
  3. oracle 关于归档的视图,oracle 与归档日志相关的几个视图
  4. python3.6和3.7的区别_python3.6和3.7有什么区别
  5. windows7系统屏幕一直闪屏的解决教程
  6. XML解析-Dom4j的DOM解析方式更新XML
  7. 上位机和下位机的概念,理解如何实现PC从PLC中读取数据?
  8. android app没有读写权限设置,Android 6.0以上权限拒绝打开权限设置界面的解决方法...
  9. SpringMVC请求参数乱码问题
  10. cookie、Session、Token、sessionStorage、localStorage简介__Token放在 cookie, sessionStorage 和 localStorage中区别