java 前后端加AES+BASE64解密说明

用 AES+BASE64 加、解密;

注意
当后端加密、前端解密时:
前端 crypto 框架传入的密文,需要传入 base64,不需要先进行 base64 解码为16进制数组,否则无法解密!
即:
后端加密:content -> encrptedContent -> base64-encrptedContent
前端解密:base64-encrptedContent -> content

1. 框架

  • 前端:crypto.js
  • 后端:Hutool Crypto 模块(使用 AES 类)

2. 代码

2.1. 后端

静态属性及初始化

    /**
     * key  加密密钥,长度为32位字符
     */
    private static final String KEY = "xxxx-xxxx-xxxx-x";

    /**
     * 使用CBC模式,需要一个向量,增强算法的强度
     */
    private static final String INIT_VECTOR = "yyyy-yyyy-yyyy-y";

    public static AES aesCoder = null;

    static {
        aesCoder = new AES(Mode.CBC, Padding.ISO10126Padding, KEY.getBytes(StandardCharsets.UTF_8),
                INIT_VECTOR.getBytes(StandardCharsets.UTF_8));
    }

加密

    public static String encode(String data) throws Exception {

        try {

            return aesCoder.encryptBase64(data.getBytes(StandardCharsets.UTF_8));

        } catch (Exception e) {
            throw new Exception(e);
        }
    }

解密

    public static String decode(String data) throws Exception{
        try{

            byte[] decrypt = aesCoder.decrypt(data);

            return new String(decrypt, StandardCharsets.UTF_8);

        }catch (Exception e){
            throw new Exception(e);
        }
    }
2.2. 前端




    
    
    
    Document
    
    



    


你可能感兴趣的:(java 前后端加AES+BASE64解密说明)