# 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);
}
```
建议将接口中的四个接口全部实现