开源软件名称:mybatis-cipher
开源软件地址:https://gitee.com/Jerry.hu/mybatis-cipher
开源软件介绍:
mybatis-cipher项目介绍基于mybatis 来实现对敏感数据在进出DB时候进行脱敏处理,让各位码友们无需自己各种手动实现 安装教程- 下载最新的jar包
mybatis-cipher-plus
使用说明配置初始化- spring boot 模式 零配置模式
配置加解密拦截器 /** * MybatisPlusConfig * @author Jerry.hu * @summary MybatisPlusConfig * @Copyright (c) 2018, xiaoweige Group All Rights Reserved. * @Description MybatisPlusConfig * @since 2018-09-29 16:46 */@EnableTransactionManagement@Configurationpublic class MybatisPlusConfig { @Bean public FieldEncryptInterceptor paginationInterceptor() { return new FieldEncryptInterceptor(); }} yml配置 mybatis: type-aliases-package: org.xiaoweige.mybatis.cipher.example.model.po mapper-locations: - classpath:mybatis/mappers/*.xml - classpath:mybatis/mappers/*/*.xml configuration-properties: cacheEnabled : false ####<!-- 查询时,关闭关联对象即时加载以提高性能 --> lazyLoadingEnabled : true ####<!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的所有字段,以提高性能 --> aggressiveLazyLoading : false ####<!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 --> multipleResultSetsEnabled : true ####<!-- 允许使用列标签代替列名 --> useColumnLabel : true ####<!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 --> useGeneratedKeys : true ####<!-- 给予被嵌套的resultMap以字段-属性的映射支持 --> autoMappingBehavior : FULL ####<!-- 对于批量更新操作缓存SQL以提高性能 --> defaultExecutorType : SIMPLE ####<!-- 数据库超过15秒仍未响应则超时,部分语句可单独指定超时时间 --> defaultStatementTimeout : 15 jdbcTypeForNull : NULL ####<!-- 当参数为NULL且字段列可为空的Double等类型时可直接当NULL插入 --> callSettersOnNulls : true ####打印sql语句### logPrefix : "dao." - xml 配置方式
<settings> <!-- 全局映射器启用缓存 --> <setting name="cacheEnabled" value="false" /> <!-- 查询时,关闭关联对象即时加载以提高性能 --> <setting name="lazyLoadingEnabled" value="true" /> <!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的所有字段,以提高性能 --> <setting name="aggressiveLazyLoading" value="false" /> <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 --> <setting name="multipleResultSetsEnabled" value="true" /> <!-- 允许使用列标签代替列名 --> <setting name="useColumnLabel" value="true" /> <!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 --> <setting name="useGeneratedKeys" value="true" /> <!-- 给予被嵌套的resultMap以字段-属性的映射支持 --> <setting name="autoMappingBehavior" value="FULL" /> <!-- 对于批量更新操作缓存SQL以提高性能 --> <setting name="defaultExecutorType" value="SIMPLE" /> <!-- 数据库超过15秒仍未响应则超时,部分语句可单独指定超时时间 --> <setting name="defaultStatementTimeout" value="15" /> <setting name="jdbcTypeForNull" value="NULL" /> <!-- 当参数为NULL且字段列可为空的Double等类型时可直接当NULL插入 --> <setting name="callSettersOnNulls" value="true" /> <!--<!– 打印sql语句 –>--> <setting name="logPrefix" value="dao." /> </settings> <plugins> <plugin interceptor="org.xiaoweige.mybatis.interceptor.FieldEncryptInterceptor"> </plugin> </plugins> 实现加解密接口 CryptService/** * 加解密服务接口 * @author Jerry.hu * @summary 加解密服务接口 * @Copyright (c) 2018, xiaoweige Group All Rights Reserved. * @Description 加解密服务接口 * @since 2018-09-29 10:58:18 */public interface CryptService { /** * 单条加密 * @author Jerry.hu * @modifier Jerry.hu * @since 2018-09-29 10:58:18 * @param value 待加密字段 * @return 加密后的字符串 */ String encrypt(String value); /** * 单条解密 * @author Jerry.hu * @modifier Jerry.hu * @since 2018-09-29 10:58:18 * @param value 待解密字段 * @return 解密后的字符串 */ String decrypt(String value); /** * 批量解密 * @author Jerry.hu * @modifier Jerry.hu * @since 2018-09-29 10:58:18 * @param ori 待解密密文集合 * @return map key 密文 value 明文 */ Map<String,String> batchDecrypt(List<String> ori); /** * 批量加密 * @author Jerry.hu * @modifier Jerry.hu * @since 2018-09-29 10:59:36 * @param ori 待解密密文集合 * @return map key 明文 value 原密 */ Map<String,String> batchEncrypt(List<String> ori);} 建议将接口中的四个接口全部实现 |
请发表评论