chenjiangbin/captcha-puzzle

图形验证码验证 puzzle

v0.1 2025-06-23 07:33 UTC

This package is auto-updated.

Last update: 2025-06-23 08:02:18 UTC


README

一个基于 PHP 的拼图验证码生成器,支持前后端交互验证、随机图片、偏移容差校验、token 会话存储等功能。

支持拼图验证码校验,兼容 PHP >=7.4

✨ 特性

  • ✔️ 支持图形拼图验证码
  • ✔️ 可自定义验证码图片、尺寸、颜色
  • ✔️ 支持 session 验证偏移
  • ✔️ 支持前后端配合使用
  • ✔️ Composer 一键集成

💡 安装

通过 Composer 安装:

composer require chenjiangbin/captcha-puzzle
# 可查看 public 中的demo.php
use Chenjiangbin\CaptchaPuzzle\CaptchaGenerator;

$captcha = (new CaptchaGenerator())
    ->setIsToken(true)
    ->setImgWidth(50)
    ->setImgHeight(50)
    ->setTargetWidth(300)
    ->setTargetHeight(200)
    ->setCaptchaImages(['path/to/img1.png', 'path/to/img2.jpg']);

$data = $captcha->create();
{
  "bg": "data:image/png;base64,...",
  "puzzle": "data:image/png;base64,...",
  "offset": 123,
  "token": "token_xxx",
  "width": 50,
  "height": 50,
  "top": 34
}
$isValid = $captcha->checkOffset($token, $userOffset);
方法 描述
setIsToken(true) 是否启用 token 存储偏移
setTokenKey('xxx_') 自定义 token 前缀
setImgWidth(50) 设置拼图宽度
setImgHeight(50) 设置拼图高度
setTargetWidth(300) 设置背景图宽度
setTargetHeight(200) 设置背景图高度
setCaptchaImages([]) 设置验证码图片(数组或单张)
setBgRgb(r,g,b,a) 设置背景颜色
setBgBorderRgb(r,g,b,a) 设置边框颜色

demo

# 进入到public目录
cd captcha-puzzle/public
# 运行
php -S localhost:8000
# 访问
http://localhost:8000/index.html

demo示例