三种验证码
点击、旋转、滑块三种交互,支持随机切换、难度与容差配置。
poster-php 把点击、旋转、滑块三种人机校验与链式海报生成放进同一个包,图片与答案全部由 PHP 生成,不依赖第三方服务。
十四种海报元素覆盖文字、图片、二维码、表格、图表与日历,图像驱动可在 GD 与 ImageMagick 之间切换,存储支持 File、Session、Redis 与 PSR-16。
一只由海报本体与验证码配件组成的吉祥物:左手举二维码卡片,右手举滑块拼图。
出图与验证,两件事都交给我。生成、校验、排版、渲染都在同一个包里完成。
点击、旋转、滑块三种交互,支持随机切换、难度与容差配置。
文字、图片、二维码、表格、图表、日历等元素链式叠加。
内置 Model 2 编码器,支持 v1 到 v40 与 L/M/Q/H 容错级别。
JSON 模板配合变量替换,builder 可导出再导入。
Laravel、ThinkPHP、Webman、Hyperf、Yii2、Yii3 共用核心。
一次性校验、防暴力、有效期、会话限流与可选轨迹校验。
PHP 版本之外,也可以直接使用 Rust 实现。
Rust 版验证码与海报生成
把三种验证码与十四种海报元素带到 Rust,纯 Rust 图像栈,附 8 个框架集成。
每一次发布都对应一段真实提交。
修复 Imagick 遮罩与圆形裁剪的 alpha 通道,同步 13 语言文档。
新增 jigsaw 形状,四边随机凸凹,缺口与拼图块共用同一轮廓。
新增两个 Yii 框架适配,核心能力在六种框架间保持一致。
落地 native.php、二维码编码器重写、会话限流与轨迹校验。
点击图片放大查看。
先安装,再跑一个最小示例。
composer require erikwang2013/poster-php$result = captcha_create('click');
$pass = captcha_verify($result['key'], 'click', [[120, 80], [200, 150], [310, 95]]);
$builder = poster_create(750, 1334);
$builder->background('#FFFFFF');
$builder->addText('新品首发', ['x' => 80, 'y' => 120, 'size' => 48, 'color' => '#333333']);
$builder->save('/output/poster.jpg', 90);cargo add poster-rustuse poster::captcha::{Answer, CaptchaManager};
use poster::PosterBuilder;
let manager = CaptchaManager::new()?;
let result = manager.create(Some("click"))?.generate()?;
let pass = manager.verify(&result.key, Answer::Click(vec![(120.0, 80.0)]))?;
let mut builder = PosterBuilder::new()?;
builder.background("#FFFFFF");
builder.save("/output/poster.jpg", None)?;鼠标停一停,它会换一种心情。