做了一个Serverless的仿discuz验证码生成器
在 Cloudflare Worker 中部署,通过纯 JavaScript 在内存中构建像素矩阵,利用 V8 引擎原生的 CompressionStream API 打包生成 PNG 图片。可用于AI训练数据的生成等。
预览
API 参数说明 (URL Query 参数)
可以通过在请求 URL 后面附加查询参数(Query Parameters)来动态控制验证码的生成效果。
示例 URL:https://captcha.psu.monster/?scatter=false&warping=false
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
code |
string |
(随机) | 强制指定生成的验证码文本内容(char_set: “BCEFGHJKMPQRTVWXY2346789”)。 |
width |
number |
150 |
验证码图片的宽度(像素)。 |
height |
number |
60 |
验证码图片的高度(像素)。 |
do_adulterate |
boolean |
(随机) | 是否添加干扰线和干扰圆弧。 |
angle |
boolean |
(随机) | 字符是否进行随机倾斜旋转(-30度 到 30度)。 |
warping |
boolean |
(随机) | 是否应用正弦波水波纹扭曲特效,大幅增加机器识别难度。 |
scatter |
boolean |
(随机) | 是否应用噪点发散特效,让像素产生随机偏移散开。 |
color |
boolean |
(随机) | true: 字符和干扰线使用鲜艳彩色;false: 使用与背景形成高对比的深色调。 |
size |
boolean |
(随机) | 字符是否进行随机的放大/缩小变形。 |
shadow |
boolean |
(随机) | 字符底层是否带有一层黑色的立体阴影效果。 |
- 上表中标识为
(随机)的参数,如果在 URL 中未显式指定,系统将在每次请求时以 50% 的概率随机开启或关闭,以最大化验证码的多样性和安全性。- 验证码的真实文本内容(无论是否被指定)都会被放置在 Response Header 的
X-Captcha-Code字段中(转为小写),方便 API 网关进行拦截与比对。
做了一个Serverless的仿discuz验证码生成器