验证码自动识别填充(通用 CRNN)— 脚本说明
📖 简介
本脚本为图片验证码与纯文字验证码提供自动识别与填充能力:
- 🌐 通用识别模型:基于 CRNN + CTC 的验证码识别模型,不假设验证码的尺寸、字符个数与落位方式,同一套模型适配不同站点、不同风格的验证码
- 🔒 纯本地推理:模型经 ONNX Runtime Web(WASM)在浏览器内运行,不上传任何图片或用户数据,无任何云端接口
- 🖼️ 零配置自动发现:智能检测页面上的验证码与输入框,弹出横幅一键启用
- 🔁 低置信自动重试:识别置信度不足时自动点击刷新换一张重新识别,最多重试 5 次
⚠️ 本脚本仅用于已授权测试环境的自动填充集成,请遵守目标系统的使用条款。
✨ 功能特性
| 功能 |
说明 |
| 自动发现 |
页面加载后扫描 DOM,按关键词、尺寸比例、元素邻近度启发式配对"验证码图 + 输入框",检测到后顶部弹出横幅 |
| 图片验证码识别 |
本地 CRNN 模型推理(支持任意尺寸的 <img>/<canvas> 验证码),输出字符串与置信度 |
| 纯文字验证码直读 |
验证码以 DOM 文本形式渲染的站点,直接读取文本填充,无需加载模型 |
| 低置信刷新重试 |
置信度 <0.9 时自动点击验证码刷新换图重试(最多 5 次),避免填错 |
| 手动刷新联动 |
你手动点击验证码换图时,自动重新识别并更新填充内容 |
| 手动输入保护 |
你自己输入的内容不会被脚本覆盖 |
| 配置持久化 |
每个站点只需配置一次,按域名保存 |
📦 安装
- 安装用户脚本管理器:脚本猫 ScriptCat(推荐)或 Tampermonkey / Violentmonkey
- 安装本脚本(脚本猫面板 → 新建脚本 → 粘贴脚本全文保存,或通过安装链接导入)
- 首次在启用站点触发识别时会自动下载识别模型(约 10.5MB),下载一次后管理器级缓存,所有网站共享,无需重复下载
🎮 使用方法
方式一:自动发现(推荐)
- 打开含验证码的页面(部分站点需先输入账号、点击密码框后验证码才显示,脚本会自动跟随)
- 页面顶部弹出横幅「检测到验证码」,附验证码缩略图与输入框预览(蓝框高亮)
- 点击「启用自动填充」——配置自动保存,验证码立即识别并填入
横幅三个按钮:
| 按钮 |
行为 |
| 启用自动填充 |
保存当前检测结果并立即开始识别填充 |
| 微调 |
进入手动选择模式(见下) |
| 忽略本站 |
本站不再提示(可用菜单恢复) |
方式二:微调(自动检测不准时)
点击横幅上的「微调」(或脚本菜单「微调本站配置」):
- 点击验证码元素——点到
IMG/CANVAS 自动进入图片识别模式;点到纯文字验证码的文本元素则进入文字直读模式
- 点击验证码输入框
- 配置自动保存并立即生效
脚本菜单
| 菜单项 |
功能 |
| 手动识别当前页 |
立即重新识别并强制填充一次 |
| 微调本站配置 |
重新点选验证码元素与输入框 |
| 清除本站配置 |
删除本站保存的配置并刷新页面 |
两种识别模式的行为
| 模式 |
行为 |
| 🖼️ 图片模式 |
本地模型识别;置信度 ≥0.9 且识别出 4 位字符时填入;不足则自动刷新重试 |
| 🔤 文字模式 |
直接读取页面元素中的验证码文本(提取 3~8 位字母数字)填入;读取失败自动刷新重试 |
填充成功后右下角会短暂显示结果与置信度(如 已填充 X7KD(置信度 0.95)),几秒后自动消失;出现红色提示时请按提示手动处理。
🧠 工作原理
- 识别模型:CRNN(卷积 + 双向 LSTM)+ CTC 解码,输入高度归一化、宽度按比例自适应,可处理 3~6 位、任意尺寸的验证码
- 运行时:onnxruntime-web(WASM,单线程),全部计算在浏览器本地完成
- 模型分发:模型文件(10.5MB)托管于 jsDelivr CDN 并随脚本版本锁定;首次使用经管理器下载进
@resource 共享缓存,之后所有网站直接从缓存加载(完全离线可用)
- 更新机制:脚本更新后自动拉取对应版本的模型
🔒 隐私说明
- 验证码图片仅在本机内存中推理,不发送到任何服务器
- 唯一的网络请求是首次下载公开模型文件(不含任何用户数据)
- 站点配置与缓存放置在本地(管理器存储 / Cache API),可随时通过菜单清除
❓ 常见问题
Q:没有弹出检测横幅?
部分站点验证码在交互后才显示,脚本会在你点击/输入时自动重新检测。仍无横幅时,直接用菜单「微调本站配置」手动点选。
Q:识别结果错误?
识别置信度不足时脚本会自动刷新重试;你也可以手动刷新验证码换一张,脚本会自动重新识别。个别极度模糊的图请手动输入。
Q:想重新配置某个站点?
菜单「清除本站配置」后刷新页面,或菜单「微调本站配置」直接重选元素。
Q:模型下载很慢?
模型约 10.5MB,仅首次需要下载(每个管理器一次,全站共享)。如遇网络波动脚本会自动切换多个 CDN 源重试。
⚖️ 免责声明
本脚本仅用于已授权测试环境的安全研究与自动化填充集成,不包含登录提交或验证码绕过逻辑。请遵守目标系统的使用条款与当地法律法规,使用者需自行承担使用后果。