基于Hutool封装的AES对称加密工具类

基于Hutool封装的AES对称加密工具类

Administrator 146 2021-07-19
package cn.bakuman.test;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;

/**
 * @Author 梦叶
 * 加密解密工具类
 */
public class AESUtil {

    /**
     * 加密方法
     * @param password 明文密码
     * @param key 16位秘钥
     * @return
     */
    public static String encryptHex(String password,String key) {
        AES aes = SecureUtil.aes(salt.getBytes());
        return aes.encryptHex(password);
    }

    /**
     * 解密方法
     * @param HexPassword 密文密码
     * @param key 秘钥
     * @return
     */
    public static String decryptStr(String HexPassword,String key) {
        AES aes = SecureUtil.aes(salt.getBytes());
        return aes.encryptHex(HexPassword);

    }

    /**
     * 验证加密密码
     * @param password 明文密码
     * @param HexPassword 密文密码
     * @param key 秘钥
     * @return
     */
    public static boolean checkPwd(String password,String HexPassword,String key) {
        try {
            if (StrUtil.isAllBlank(password, HexPassword, key)) {
                return false;
            }
            AES aes = SecureUtil.aes(key.getBytes());
            String hex = aes.encryptHex(password);
            if (HexPassword.equals(hex)) {
                return true;
            }
        } catch (Exception e) {
            return false;
        }
        return false;
    }

}