# mybatis-encrypt-v2 **Repository Path**: bulunxier/mybatis-encrypt-v2 ## Basic Information - **Project Name**: mybatis-encrypt-v2 - **Description**: mybatis脱敏 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-03-21 - **Last Updated**: 2023-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: java-util ## README _**背景**_ 最近接到需求需要对数据库中的电话、身份证号等敏感信息进行脱敏加密处理, 再加上之前面试时也被问到相关问题,所有在此记录。脱敏对象是数据库的字段,所以在数据库存取的出入口进行加解密操作是最合适的,项目中使用mybatis作为ORM框架,所以使用基于mybatis的数据库脱敏。 **思路** 对数据库中的数据进行脱敏处理,核心思想就是在入库时对敏感字段进行加密,在出库时对敏感字段解密。看清了这个问题,我们的关注点就有两个。 mybatis框架中的plugin,能够对上面两个关注点进行很好的控制,再结合自定义注解,对需要脱敏的字段进行标注,就能够满足我们的需求。 **实现** - mybatis interceptor执行流程与原理 - 自定义注解 - 反射 **思考** 1. 通过mybatis的插件对数据库的增删改查实现脱敏处理还是比较简单的。重点就在于: 2. 拦截Executor对象的query和update方法,获取查询/更新参数和查询结果集 通过反射对参数中标注自定义注解的字段进行加/解密处理