后端记录 - mybait-plus字段入库加密,出库解密方案

本文介绍了在后端使用Mybatis-Plus实现字段入库加密、出库解密的完整方案。通过引入mybatis-plus-boot-starter,编写AES加解密工具和类型处理器,设置实体类和属性注解,确保前端操作无感知,同时详细阐述了mybatis-plus和mybatis中加密字段的查询与修改方法,并提到了在MySQL工具查询时的注意事项。
摘要由CSDN通过智能技术生成

引入mybatis-plus-boot-starter

  <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.5.1</version>
  </dependency>

编写AES加解密工具

import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;
import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;

public class AESUtils {
   

    //16位密钥
    public final static String AES_KEY = "admin1234567890.";

    /**
     * AES LIKE
     */
    public static final String LIKE_AES = "AES_DECRYPT(FROM_BASE64({}), '" + AESUtils.AES_KEY + "') LIKE {0}";

    /**
     * AES EQUAL
     */
    public static final String EQUAL_AES = "AES_DECRYPT(FROM_BASE64({}), '" + AESUtils.AES_KEY + "') = {0}";

    public static <T, R> Wrapper<T> applyAesLike(AbstractWrapper<T, R, ?> wrapper, boolean condition, String column, Object val) {
   
        return wrapper.apply(condition, StrUtil.format(AESUtils.LIKE_AES, column), "%" + val + "%");
    }

    public static <T, R> Wrapper<T> applyAesLikeLeft(AbstractWrapper<T, R, ?> wrapper, boolean condition, String column, Object val) {
   
        return wrapper.apply(condition, StrUtil.format(AESUtils.LIKE_AES, column), "%" + val);
    }

    public static <T, R> Wrapper<T> applyAesLikeRight(AbstractWrapper<T, R, ?> wrapper, boolean condition, String column
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值