# mybatis-encrypt-boot-starter **Repository Path**: bit4/mybatis-encrypt-boot-starter ## Basic Information - **Project Name**: mybatis-encrypt-boot-starter - **Description**: mybatis加密插件 支持纯mybatis和mybatis-plus - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2023-04-01 - **Last Updated**: 2026-01-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Mybatis-Encrypt-Boot-Starter ## 简介 Mybatis数据加解密模块 当前版本:1.0.0 ## 特性 - 支持列级密码控制,提高数据安全性 - 支持自定义加解密算法 - 支持数据完整性校验 - 支持几乎所有数据类型加解密,原代码改动小 - 支持多线程数据解密,加快查询速度 - 支持自定义解密线程池 - 支持加密数据eq查询 - 同时兼容Mybatis和Mybatis Plus - 内置AES-SHA256数据加密实现 ## 快速开始 1. 添加依赖 - maven ```xml cn.bincker mybatis-encrypt-boot-starter [version] ``` - gradle ```groovy implementation "cn.bincker:mybatis-encrypt-boot-starter:$version" ``` 2. 添加注解 ```java public class User{ // ... @Encrypt private String realName; @Encrypt private String phone; // ... } ``` 3. 重新创建对应的数据表 ```sql -- 把所有需要加密的字段改为 bytea/blob 类型 create table "user" ( -- ... real_name bytea, phone bytea -- ... ) ``` 4. 给加密字段的ResultMap添加jdbc类型 ```xml ``` 5. 配置 ```java @Configuration public class EncryptConfiguration implements MybatisEncryptConfigurer { /** * 选择加解密实现 **/ @Bean public Encryptor encryptor(){ return new AesAndSha256Encryptor(); } /** * 通过类和字段名选择密钥 * 通过类和字段名对数据摘要加盐混淆 **/ @Bean public EncryptKeyProvider temporaryKeyProvider(){ return new EncryptKeyProvider(){ // implementation... }; } } ``` 6. 迁移数据 你可以使用[mybatis-encrypt-data-migration](https://gitee.com/Bincker1973/mybatis-encrypt-data-migration)项目进行迁移,或者自行迁移 7. 检查代码中加密数据除了eq的所有查询,统统去除或者改为eq,且eq参数需要为EncryptParam 8. 启动项目校验数据 9. 完成 ## 注意事项 - 加密字段在数据库中需要为Bytea类型 - 加密字段在ResultMap中需要添加jdbc类型 - 加密字段无法在查询中进行计算,只能进行eq查询 - 需要通过加密字段进行查询时,参数必须为实体类或EncryptParam和LambdaEncryptParam ## 解密缓存 实现EncryptCache的Bean即可 ## 进度 ✔ 实现加密基础框架 ✔ AES默认实现 ✔ 数据插入加密 ✔ 单个字段数据查询 ✔ Mybatis Plus数据查询 ✔ Mybatis Plus Lambda数据查询 ✔ 数据更新测试 ✔ 数据完整性校验 ✔ Mybatis测试 ✔ Mybatis Plus测试 ✔ 数据完整性测试 ✔ 解密缓存