AOP实现注解式脱敏数据明文查询

本文介绍了一种利用AOP和自定义注解解决脱敏数据查询的方法。通过在用户身份证号中间部分替换为×,并创建加密工具类、加密注解以及Aop切面处理类,实现了在查询时自动对参数加密,简化了查询过程,避免了手动调用加密工具的繁琐。示例展示了如何在UserController中应用此方案进行用户查询。
摘要由CSDN通过智能技术生成

最近又遇到了脱敏数据查询相关的问题,常规的脱敏数据比如用户身份证将中间位数抹去后加入数据库,那么查询时需要手动调用就比较麻烦,不过可以使用自定义注解,利用AOP解析后在切面将数据加密再作为参数注入运行,实现非入侵的脱敏数据明文查询。简单记录一下。

情境和思路

用户身份证脱敏,保留前四位和后八位,其余转换为×符号存入数据库。利用aop在方法执行的切面将注解修饰的方法中对应的参数进行加密后注入,就能实现脱敏数据的明文搜索,而不用手动调工具类了。

实现

用户

简单的用户信息,code为身份证。

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
   
    private int id;
    private String code;
    private String name;
    private byte sex;
}

Mapper

简单的搜索接口。

@Mapper
public interface UserMapper {
   
    @Select("select * from user where code = #{code}")
    public User findUserByCode(String code);
}

加密工具类

将加密类型也作为参数,适应不同情况。

public class EncryptionUtil {
   

    public final static String SELF_CODE = "self_code";

    // 加密
    public static String encrypt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值