Skip to content

About

基于mybatis拦截器+JsqlParser+Mysql aes加解密函数的加解密组件

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

数据库敏感字段sql加解密插件

目前支持Mybatis,beetSql,理论上来说,只要提供了拦截器机制的ORM均可以支持

设计思路概述

使用mysql函数hex(),unhex(),aes_decrypt(),aes_encrypt()对数据进行加解密:支持模糊查询+分页,对现有业务零侵入;

设置/修改密码接口新增加密逻辑hex(aes_encrypt(?));

详情/列表接口新增解密逻辑aes_decrypt(unhex(?));

mybatis,beetSql均提供Interceptor,各个对接应用在sql执行前捕捉到目标sql调用插件加解密sql替换,最后执行替换后的sql以调用数据库层加解密函数;

针对特殊语句:select * from table的处理.应用启动阶段扫描并获取scheme中的敏感表结构等信息(Metadata),在Interceptor中建立敏感表table-[column,column,column...]的映射,用于替换*

使用JSqlParser将原始sql语句解析为抽象语法树,逐层处理;

插件提供一个测试类用于观察sql替换效果:

SecurityPluginTest

整体架构

image

对接方式

image

About

基于mybatis拦截器+JsqlParser+Mysql aes加解密函数的加解密组件

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages