# mybatis-cipher **Repository Path**: liu_wei1991/mybatis-cipher ## Basic Information - **Project Name**: mybatis-cipher - **Description**: 基于mybatis 来实现对敏感数据在进出DB时候进行脱敏处理, 让各位码友们无需自己各种手动实现 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 71 - **Created**: 2021-08-30 - **Last Updated**: 2021-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: 数据脱敏 ## README # mybatis-cipher #### 项目介绍 基于mybatis 来实现对敏感数据在进出DB时候进行脱敏处理, 让各位码友们无需自己各种手动实现 #### 安装教程 1. 下载最新的jar包 `mybatis-cipher-plus` #### 使用说明 ##### 配置初始化 1. spring boot 模式 零配置模式 配置加解密拦截器 ```java /** * MybatisPlusConfig * @author Jerry.hu * @summary MybatisPlusConfig * @Copyright (c) 2018, xiaoweige Group All Rights Reserved. * @Description MybatisPlusConfig * @since 2018-09-29 16:46 */ @EnableTransactionManagement @Configuration public class MybatisPlusConfig { @Bean public FieldEncryptInterceptor paginationInterceptor() { return new FieldEncryptInterceptor(); } } ``` yml配置 ```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 #### aggressiveLazyLoading : false #### multipleResultSetsEnabled : true #### useColumnLabel : true #### useGeneratedKeys : true #### autoMappingBehavior : FULL #### defaultExecutorType : SIMPLE #### defaultStatementTimeout : 15 jdbcTypeForNull : NULL #### callSettersOnNulls : true ####打印sql语句### logPrefix : "dao." ``` 2. xml 配置方式 ```java ``` ##### 实现加解密接口 CryptService ```java /** * 加解密服务接口 * @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 batchDecrypt(List ori); /** * 批量加密 * @author Jerry.hu * @modifier Jerry.hu * @since 2018-09-29 10:59:36 * @param ori 待解密密文集合 * @return map key 明文 value 原密 */ Map batchEncrypt(List ori); } ``` 建议将接口中的四个接口全部实现