Mybatis插件对指定字段加解密

发布时间:2023年12月17日

1、需求环境:

在整个项目都结束之后,甲方希望库表内所有涉及到电话号码、详细地址、身份证号码、用户姓名等特殊数据进行加密;
在项目已经基本完结的情况下要多这么多表字段进行加密,且不能影响代码内的正常运行,无疑在数据协调上是个非常复杂的问题;

2、需求拆分

1、特殊数据存量加密存储
2、特殊数据增量加密存储
3、特殊数据解密使用
4、对存量数据加密,支持自定义表及表字段
5、最大程度上减少修改原代码

3、代码实现 (懒得去除敏感信息了,先说明以下全是截图无代码)

对存量数据

整体逻辑

在这里插入图片描述
这里run方法还能用线程再优化优化,因为存量数据加密大概率是只使用一次,数据量也不大就不搞那么炫酷了

表及表字段配置

在这里插入图片描述
在这里插入图片描述

顺序获取表及表字段数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

加密(排除主键),使用对称加密方式

在这里插入图片描述

加解密工具类

在这里插入图片描述
在这里插入图片描述

手动提交事务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对增量数据

代码结构,关键就是plugin下的参数加密插件和结果解密插件

在这里插入图片描述

注解

在这里插入图片描述
在这里插入图片描述

mybatis插件配置

在这里插入图片描述

AES配置

在这里插入图片描述

DataConfig

在这里插入图片描述

参数加密插件

在这里插入图片描述

结果解密插件

在这里插入图片描述

使用

在这里插入图片描述

	mybatis插件的方式也并不是完全适用,,代码中总会有一些sql并不完全使用对象来充当参数或返回结果,因此具体情况还需具体处理
	需要使用工具类加解密的地方还是得手动地去处理,,这种后期再添加的数据脱敏,过程繁琐且工作量庞大,对数据和功能的影响还是特别大的
文章来源:https://blog.csdn.net/qq_44872787/article/details/134986324
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。