← 返回 Day 134 正文

Day 134 · 图解

Day 134 - 验证码识别 图解

1. 验证码类型难度阶梯

低 ◄──────────────────────────────────────────────► 高
图形字符码 → 变形字符码 → 点选码 → 滑块 → 行为验证 → 极验4/reCAPTCHA
    │           │          │        │        │            │
  ddddocr     ddddocr   detection  slide_match  全行为链    浏览器指纹
  直接识别    直接识别    +点击模拟  +人手轨迹    模拟        +环境伪装

2. ddddocr 端到端识别 vs 传统切分识别

graph LR subgraph 传统方案 A1[验证码图] --> B1[字符切分] --> C1[逐字识别] --> D1[拼接] B1 -.粘连扭曲时失败.-> X1[❌] end subgraph ddddocr A2[验证码图] --> B2[ONNX 模型推理] --> C2[CTC 解码] --> D2[输出字符串 ✅] end
graph LR
    subgraph 传统方案
    A1[验证码图] --> B1[字符切分] --> C1[逐字识别] --> D1[拼接]
    B1 -.粘连扭曲时失败.-> X1[❌]
    end
    subgraph ddddocr
    A2[验证码图] --> B2[ONNX 模型推理] --> C2[CTC 解码] --> D2[输出字符串 ✅]
    end

3. 滑块验证流程

┌─────────┐  ①请求验证码   ┌─────────┐
│ 爬虫     │ ────────────► │ 服务端   │
│         │ ◄──────────── │         │
│         │  背景图+拼图块  │         │
│ 缺口检测 │               │         │
│ 轨迹生成 │               │         │
│         │  ②提交轨迹     │         │
│         │ ────────────► │ 校验:    │
│         │               │ 位置±5px │
│         │ ◄─── 结果 ─── │ 轨迹统计  │
└─────────┘               │ 环境指纹  │
                          └─────────┘

4. 人手轨迹 vs 机器轨迹

位移
 │       ╭──── 目标
 │     ╭─╯ ╲__╱  ← 过头后回退(人)
 │   ╭─╯
 │ ──╯
 └───────────► 时间   速度方差大 ✅

位移
 │          ╱ 目标
 │        ╱
 │      ╱          匀速直线(机器)
 │    ╱
 └───────────► 时间   速度方差=0 ❌