# tim-api-encrypt-middleware
**Repository Path**: mangoT/tim-api-encrypt-middleware
## Basic Information
- **Project Name**: tim-api-encrypt-middleware
- **Description**: 国产化改造,轻量级 API 加密 SM4, 向下兼容 springboot2.x 和 springboot3.x,兼容 AES。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-04
- **Last Updated**: 2026-02-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# tim-api-encrypt-middleware
> API 加解密中间件 - 支持 Spring Boot 2.x 和 3.x,提供 AES 和 SM4 国密算法
[](LICENSE)
[](https://gitee.com/mangoT/tim-api-encrypt-middleware)
[]()
---
## 📖 项目简介
本项目是从 [monkey-api-encrypt](https://gitee.com/mangoT/monkey-api-encrypt) 项目中提取的**纯中间件版本**,专注于提供轻量级的 API 加解密能力,不包含管理平台功能。
### 主要特性
- ✅ **双版本支持**: 同时支持 Spring Boot 2.x 和 3.x(Jakarta EE 9+)
- ✅ **国密算法**: 支持 SM4 国密算法(CBC 模式,PKCS7 填充)
- ✅ **标准算法**: 支持 AES 算法(CBC 模式,PKCS7 填充)
- ✅ **模块化设计**: 按需引入,最小化依赖
- ✅ **简单易用**: 注解驱动,零侵入集成
- ✅ **安全加固**: 修复所有已知安全漏洞(CVE)
---
## 🚀 快速开始
### Maven 依赖
```xml
com.tim
tim-api-encrypt-starter
2.1.0.RELEASE
com.tim
tim-api-encrypt-spring-boot2
2.1.0.RELEASE
```
### 配置示例
```yaml
spring:
encrypt:
enabled: true # 是否启用加密
key: your-16-byte-key # 加密密钥(16 字节)
algorithm: AES # 算法:AES 或 SM4
debug: false # 调试模式(关闭加解密)
# 请求解密配置
request:
decrypt-uris: # 需要解密的 URI
- /api/**
# 响应加密配置
response:
encrypt-uris: # 需要加密的 URI
- /api/**
```
### 注解使用
```java
import com.tim.encrypt.annotation.Encrypt;
import com.tim.encrypt.annotation.Decrypt;
@RestController
public class DemoController {
@Encrypt
@PostMapping("/api/save")
public Result save(@RequestBody User user) {
// 响应数据会自动加密
return Result.success(user);
}
@Decrypt
@PostMapping("/api/update")
public Result update(@RequestBody User user) {
// 请求数据会自动解密
return Result.success(user);
}
}
```
---
## 📦 模块说明
| 模块 | 说明 |
|------|------|
| **tim-api-encrypt-core** | 核心加解密引擎(Filter、配置、算法接口) |
| **tim-api-encrypt-sm4** | SM4 国密算法实现(Bouncy Castle) |
| **tim-api-encrypt-spring-boot2** | Spring Boot 2.x 自动配置 |
| **tim-api-encrypt-spring-boot3** | Spring Boot 3.x 自动配置 |
| **tim-api-encrypt-starter** | 统一 Starter(推荐使用) |
---
## 🔧 算法支持
### AES 算法
- **模式**: CBC
- **填充**: PKCS7
- **密钥长度**: 128 位
- **依赖**: JDK 内置
### SM4 算法
- **模式**: CBC
- **填充**: PKCS7
- **密钥长度**: 128 位
- **依赖**: Bouncy Castle (bcprov-jdk18on)
---
## 📚 示例代码
### 后端示例
项目提供了完整的后端示例代码:
- **tim-api-encrypt-springboot-example**: Spring Boot 2.x 示例
- **tim-api-encrypt-springboot3-example**: Spring Boot 3.x 示例(独立)
- **tim-api-encrypt-springmvc-example**: Spring MVC 示例
运行示例:
```bash
cd tim-api-encrypt-springboot-example
mvn spring-boot:run
```
### 前端测试工具
项目包含一个完整的 Vue 3 前端测试工具,用于测试加解密功能:
**技术栈**:
- Vue 3.4+ / TypeScript 5.3+
- Element Plus 2.5+
- Vite 5.4+
- sm-crypto(国密 SM4)
- crypto-js(AES)
**功能特性**:
- ✅ SM4 加密测试
- ✅ AES 加密测试
- ✅ API 交互测试
- ✅ 用户管理演示
- ✅ 中间件配置查看
**快速启动**:
```bash
cd tim-api-encrypt-frontend
# 安装依赖
npm install
# 或
pnpm install
# 配置后端地址
# 编辑 .env.development
# VITE_API_BASE_URL=http://localhost:8080
# VITE_ENCRYPTION_KEY=d86d7bab3d6ac01ad9dc6a897652f2d2
# 启动开发服务器
npm run dev
```
访问 http://localhost:5173
---
## 🛡️ 安全特性
本中间件已修复以下已知安全漏洞:
| CVE | 描述 | 修复版本 |
|-----|------|---------|
| CVE-2018-11771 | Apache Commons Codec | 1.17.1 |
| CVE-2021-29425 | Apache Commons IO | 2.17.0 |
| CVE-2022-45868 | SLF4J | 2.0.16 |
---
## 📋 版本说明
### v2.1.0.RELEASE (2025-02-04)
- ✅ 添加 Spring Boot 3.x 支持
- ✅ 添加 SM4 国密算法支持
- ✅ 修复所有已知安全漏洞
- ✅ 优化代码结构和文档
### v1.2.x (原版本)
- 基础加解密功能
- Spring Boot 2.x 支持
---
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 Pull Request
---
## 📄 许可证
本项目采用 [Apache License 2.0](LICENSE) 开源协议。
---
## 👥 作者
- **原作者**: [yinjihuan](https://github.com/yinjihuan)
- **当前维护**: [tim.luo](https://gitee.com/mangoT)
---
## ⚠️ 注意事项
1. **密钥安全**: 生产环境严禁在配置文件中明文存储密钥,请使用环境变量或密钥管理服务
2. **调试模式**: `debug=true` 会关闭所有加解密,仅用于开发环境
3. **密钥长度**: AES 和 SM4 密钥长度必须为 16 字节(128 位)
---
## 📞 联系方式
- **邮箱**: 513754103@qq.com
- **Gitee**: https://gitee.com/mangoT/tim-api-encrypt-middleware
- **Issues**: https://gitee.com/mangoT/tim-api-encrypt-middleware/issues
---
⭐ 如果这个项目对你有帮助,请点个 Star 支持一下!