项目Aes功能背景:
早期用的是jni写的aes加密算法,其实android 本身就实现了aes算法。
于是封装了一个工具类(实际元素值要变,比如加密模式,偏移量等等),这里写法只是参考,封装的有点欠妥,但思路简介易懂,可以随手修改。
加密在线链接
做这块要与服务器的算法一致才是可以,所以要对以上的元素(加密模式,填充、数据块,偏移量等元素,仔细校验。)
偏移量最少:16字节长度 那就是填0000000000000000
import android.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
/**
*
* android 对应的aes 工具 --- 可以替换本项目中的jni aes
* 解密有点问题:
* fix 已解决其实是对象转成byte数组,再转成string出现了问题,所以尽量的转换成byte数组就行了
* @author bingley
* @date 2020/1/13.
*/
public class AESUtils {
public static String algorithm = "AES/CBC/PKCS5Padding"; //使用的算法 算法/模式/补码方式, 目前支持ECB和CBC模式
public static String ivParameter = "0000000000000000"; // -- 偏移量,CBC模式时需要
public static String encodingFormat = "UTF-8"; //-- 字符串编码方式
private static final int keyLenght = 32;
private static final String defaultV = "0";
/**
* 带base64的AES加密,返回BASE64编码后的加密字符串
*
* @param sSrc -- 待加密内容
* @param sKey -- 加密密钥
* @throws Exception
*/
public static byte[]