一、介绍 业务场景中经常会遇到诸如用户手机号,身份证号,银行卡号,邮箱,地址,密码等等信息,属于敏感信息,需要保存在数据库中。而很多公司会会要求对数据库中的此类数据进行加密存储。 敏感数据脱敏需要处理的两个问题: 查询操作,需要对查询的关键字进行加密,同时也要对从库中查到的数据进行解密 插入和更新操作,需要对插入或者更新的数据进行加密,然后保存到数据库。 二、解决思路 最简单的方式:对代码中涉及的敏感数据接口在查询和插入、更新时进行加解密。缺点是工作量大,代码侵入多 在mybatis中进行统一拦截,上层业务调用不需要再考虑敏感数据的加解密问题。 通过查阅资料,发现思路二目前普遍有两种处理方式: 采用mybatis插件在mybatis SQL执行和查询结果填充操作上进行切入 使用mybatis框架提供的TypeHandler来实现在持久层处理数据 (见https://blog.csdn.net/qq_39052947/article/details/128148805) 本文介绍第3种方式,即使用Mybatis的插件,通过拦截器实现敏感数据加解密 三、mybatis插件原理...