feat: 增强版验证码全套实现 — 16种类型生成器/加密/风控/站点管理/平台后端/前端SDK/UI

- 核心新增: ICON_CLICK(PNG图标方案,预渲染资源)/SCRATCH/JIGSAW/CURVE_SLIDER(V1-V3)/ANGLE/CURVE_DRAW/WORD_ORDER_CLICK/PROOF_OF_WORK 等生成器
- 图标点选: classpath PNG 加载替代运行时字体渲染(Linux容器无emoji字体),提示条图作为 templateImage 返回前端
- 新增模块: crypto(AES+RSA)/obfuscator(背景乱序/噪声/扭曲)/risk(风控/IP黑名单/限流)/site(站点管理)/ml(轨迹规则引擎)
- 平台后端: 站点管理/验证码API(generate/verify/secondary-verify)/统计/ML轨迹学习
- 前端SDK: TPCaptcha兼容,支持全部新型号渲染与交互
- 工具: tools/icon-render 图标预渲染工具
This commit is contained in:
abcv7
2026-08-26 09:58:15 +08:00
parent d56958727c
commit dbe9b58b0c
115 changed files with 10365 additions and 36 deletions
+102
View File
@@ -0,0 +1,102 @@
# AGENTS.md - tianai-captcha-enhanced
## 项目概述
基于 tianai-captcha 1.5.5 开源版的增强版行为验证码,目标是复现增强版全部功能并自建验证码服务平台。
## 技术栈
| 组件 | 版本 |
|------|------|
| JDK | 21 (Microsoft OpenJDK 21.0.11 LTS) |
| Maven | 3.9.16 |
| Spring Boot | 3.4.5 |
| Lombok | 1.18.42 (后续逐步移除) |
| SLF4J | 2.0.17 |
| ONNX Runtime | 1.22.0 (ML推理,待引入) |
## 环境路径
```powershell
$env:JAVA_HOME = "C:\Users\USER879511\.jdks\ms-21.0.11"
$env:PATH = "$env:JAVA_HOME\bin;$env:PATH"
$Maven = "D:\Middleware\environment\apache-maven-3.9.16\bin\mvn.cmd"
```
## 构建 & 验证
```powershell
$env:JAVA_HOME = "C:\Users\USER879511\.jdks\ms-21.0.11"
& "D:\Middleware\environment\apache-maven-3.9.16\bin\mvn.cmd" -f "D:\tianai-captcha-enhanced\pom.xml" compile
& "D:\Middleware\environment\apache-maven-3.9.16\bin\mvn.cmd" -f "D:\tianai-captcha-enhanced\pom.xml" package -DskipTests
```
## 项目版本
`1.5.5` 升级到 `2.0.0-SNAPSHOT`,表示这是增强版的开发版本。
## 模块结构
```
tianai-captcha-enhanced/
├── tianai-captcha/ # 核心模块 (JDK 21, Spring Boot 3.4)
├── tianai-captcha-springboot-starter/ # Spring Boot Starter (3.4.5)
├── tianai-captcha-web-sdk/ # 前端SDK (待增强)
├── tianai-captcha-platform/ # 管理平台后端 (待创建)
└── tianai-captcha-platform-ui/ # 管理平台前端 (待创建)
```
## 增强版功能计划
### 验证码类型 (对标官网16种)
| 类型 | 常量 | 开源版 | 增强版 | 优先级 |
|------|------|:------:|:------:|:------:|
| 滑块验证 | SLIDER | ✅ | ✅ | P0 |
| 滑块验证V2 | SLIDER_V2 | ❌ | 🔜 | P1 |
| 曲线滑块 | CURVE_SLIDER | ❌ | 🔜 | P1 |
| 曲线滑块V2 | CURVE_SLIDER_V2 | ❌ | 🔜 | P2 |
| 曲线滑块V3 | CURVE_SLIDER_V3 | ❌ | 🔜 | P2 |
| 旋转验证 | ROTATE | ✅ | ✅ | P0 |
| 滑动还原 | CONCAT | ✅ | ✅ | P0 |
| 角度验证 | ANGLE | ❌ | 🔜 | P1 |
| 刮刮乐 | SCRATCH | ❌ | 🔜 | P1 |
| 文字点选 | WORD_IMAGE_CLICK | ✅ | ✅ | P0 |
| 图标点选 | ICON_CLICK | ❌ | 🔜 | P1 |
| 语序点选 | WORD_ORDER_CLICK | ❌ | 🔜 | P1 |
| 乱序拼图 | JIGSAW | ❌ | 🔜 | P1 |
| 曲线绘制 | CURVE_DRAW | ❌ | 🔜 | P2 |
| 工作量证明 | PROOF_OF_WORK | ❌ | 🔜 | P2 |
| 随机 | RANDOM | ✅ | ✅ | P0 |
### 增强功能 (对标付费版10项)
| 功能 | 优先级 | 状态 |
|------|:------:|:----:|
| 全新加密算法 (AES-256 + RSA-4096 + SHA256) | P0 | 🔜 |
| ML轨迹校验器 (规则引擎 + ONNX) | P0 | 🔜 |
| 位置校验 (动态容错) | P0 | ✅ 已有基础 |
| 验证码背景乱序 | P1 | 🔜 |
| 差异校验 (防重放) | P1 | 🔜 |
| 请求次数校验 (滑动窗口限流) | P1 | 🔜 |
| 点选类图片背景扭曲 | P1 | 🔜 |
| IP禁用 | P1 | 🔜 |
| 轨迹相似性校验 (DTW) | P2 | 🔜 |
| 轨迹段落区分 | P2 | 🔜 |
### 平台化功能
| 功能 | 状态 |
|------|:----:|
| 站点管理 (SiteKey/SecretKey) | 🔜 |
| verifyToken 一次性消费 | 🔜 |
| 前端SDK (兼容TPCaptcha API) | 🔜 |
| 管理后台 | 🔜 |
| 统计监控 | 🔜 |
## 编码规范
- 包结构遵循开源版: application/generator/validator/resource/interceptor/cache/common
- 新增包: crypto/obfuscator/risk/site/ml
- API 响应统一使用 ApiResponse<T>
- 暂时保留 Lombok,后续逐步替换为手写 getter/setter