JAVA (Android Studio )+ JS 加密解密 AES + Base 64
前言
整个过程:
- JS 接口先用AES加密,然后加密内容转Base64 编码;
- JAVA进行Base64解码,然后用AES解密。
在这个过程JS用到了 CryptoJS v3.1.2 库;JAVA 由于JDK 17,不需要导入外部 javax.crypto,由于存在Base 64 解码过程,import java.util.Base64;
的使用要求minSdk 是26,也就是Android 8.0。
在使用AES 加解密过程中,最头疼的就是AES解密后是字节数组,如果转String ,或者String转字节数组,会加解密失败,究其原因,主要是 getBytes()
和 new String()
有一个编码规则的问题,需要指定,因此索性直接再加一层Base 64。
还有一个问题是,看网上说,JAVA 中 填充方式 在JDK 8前不支持 PKCS7Padding ÿ