问题:
在做接口开发过程中,在PC前后端加解密都没有问题,但是在Android中使用相同接口,造成了在android机上加密后无法在服务器上解密!
解决方案:
这是由于java与android的加密算法不同导致,修改下android加密方法即可。
有文章还提到
android系统的RSA实现是"RSA/None/NoPadding",而标准JDK实现是"RSA/None/PKCS1Padding"
我们实际采用的是如下解决,实测可用:
Java代码:
Cipher cipher = Cipher.getInstance("RSA");
Android代码:
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
另外相关文章:
https://stackoverflow.com/questions/6069369/rsa-encryption-difference-between-java-and-android