Android客户端加密Server后台端解密|Android客户端加密Server后台端解密 遇到的问题
最近老大叫弄一个加密,给密码加密传给Server端.
使用 AES加密算法+Base64编码 给用户密码加密;
在Android端加密是什么问题都没有.
A.然而在Server端解密的时候却报错了,如下:
java.security.NoSuchAlgorithmException:Cannot find any provider supporting AES/ECB/PKCS7PADDING然后google一番 说将 AES/ECB/PKCS7PADDING 改成 AES/ECB/PKCS5PADDING
B.然后又报
EncryptionException:java.security.InvalidKeyException:Illegal key size真是揪心啊!非法key大小,是说java 不支持AES-256,只可以到 AES-128.
要支持256的 点击这里下载 jar包.
理一下解决的具体步骤:
一.解决 Cannot find any provider supporting AES/ECB/PKCS7PADDING 的问题.
1.在Android端的不必修改.Android一点问题都没有
【Android客户端加密Server后台端解密|Android客户端加密Server后台端解密 遇到的问题】2.将服务端的加密工具类的 AES/ECB/PKCS7PADDING 改成 AES/ECB/PKCS5PADDING
二.解决EncryptionException:java.security.InvalidKeyException:Illegal key size 问题
1.下载 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy 包
下载地址
下载之后呢,将zip解压,可以看到如下目录
文章图片
UnlimitedJCEPolocy 具体替换原有的jar包:
1.1拷贝解压包的两个jar文件 [local_policy.jar , US_export_policy.jar] 到 java的如下目录:
文章图片
看图看路径就晓得了
三.这样应该就解决了以上 的问题,如有其它问题另外再解决.
注意:以上是在 jdk1.8 的环境下的.
记录下问题; 如还有更好的方法请相告.
不喜勿喷!祝阅者生活愉快!
推荐阅读
- android第三方框架(五)ButterKnife
- 对称加密和非对称加密的区别
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- android防止连续点击的简单实现(kotlin)