PHPackages                             fastknife/ajcaptcha - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. fastknife/ajcaptcha

ActiveLibrary

fastknife/ajcaptcha
===================

This is a behavior verification code PHP back-end implementation package

v2.1.0(4mo ago)653.1k—2.9%2GPL-3.0-onlyJavaScriptPHP &gt;=7.1

Since Jul 15Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/fastknifes/ajcaptcha)[ Packagist](https://packagist.org/packages/fastknife/ajcaptcha)[ RSS](/packages/fastknife-ajcaptcha/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)DependenciesVersions (21)Used By (2)

AJ-Captcha for PHP
==================

[](#aj-captcha-for-php)

[![Version](https://camo.githubusercontent.com/fbb3f4eb8a6c77732c0b8351a49ba12b16e7cb86188b1eb7d10aff72a830f56a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d322e312e302d626c75652e737667)](https://camo.githubusercontent.com/fbb3f4eb8a6c77732c0b8351a49ba12b16e7cb86188b1eb7d10aff72a830f56a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d322e312e302d626c75652e737667)[![PHP](https://camo.githubusercontent.com/54b410cc1f2af8057409a1ef5cd085e3eace1d5fb8e021d21bb619912b062c28/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344372e312d677265656e2e737667)](https://camo.githubusercontent.com/54b410cc1f2af8057409a1ef5cd085e3eace1d5fb8e021d21bb619912b062c28/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344372e312d677265656e2e737667)[![License](https://camo.githubusercontent.com/2c35df2da25b9f18c8db9916b00354a485470a77c6b52eeaa3c9ca691c64f259/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d6f72616e67652e737667)](https://camo.githubusercontent.com/2c35df2da25b9f18c8db9916b00354a485470a77c6b52eeaa3c9ca691c64f259/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d6f72616e67652e737667)

这个类库使用 PHP 实现了行为验证码（滑动拼图、点选文字）。 v2.0 版本基于 **Strategy Pattern（策略模式）** 彻底重构了底层架构，移除了第三方图像库依赖，引入了原生 GD 绘图与抗锯齿技术，带来了更极致的体验与更高的性能。

Java实现：

PHP实现：

文档地址：

##### 预览效果

[](#预览效果)

[![block](https://camo.githubusercontent.com/159a0a63c40769962c27f86f1387234ed9e047dd8d0e6b2a80d619c9f7854828/68747470733a2f2f67697465652e636f6d2f616e6a692d706c75732f636170746368612f7261772f6d61737465722f696d616765732f2545362542422539312545352538412541382545362538422542432545352539422542452e676966)](https://camo.githubusercontent.com/159a0a63c40769962c27f86f1387234ed9e047dd8d0e6b2a80d619c9f7854828/68747470733a2f2f67697465652e636f6d2f616e6a692d706c75732f636170746368612f7261772f6d61737465722f696d616765732f2545362542422539312545352538412541382545362538422542432545352539422542452e676966) [![click](https://camo.githubusercontent.com/a583f5e718d5dda07e56cd43e5b228d39962fdb7dae7383822b8d2cb468677af/68747470733a2f2f67697465652e636f6d2f616e6a692d706c75732f636170746368612f7261772f6d61737465722f696d616765732f2545372538322542392545392538302538392545362539362538372545352541442539372e676966)](https://camo.githubusercontent.com/a583f5e718d5dda07e56cd43e5b228d39962fdb7dae7383822b8d2cb468677af/68747470733a2f2f67697465652e636f6d2f616e6a692d706c75732f636170746368612f7261772f6d61737465722f696d616765732f2545372538322542392545392538302538392545362539362538372545352541442539372e676966)

✨ 核心特性 (v2.1)
-------------

[](#-核心特性-v21)

- **轻量零依赖**：彻底移除 `intervention/image`，完全基于 PHP 原生 GD 库，体积更小，兼容性更强（PHP 7.1 ~ 8.5+）。
- **极致抗锯齿 (Anti-Aliasing)**：
    - 全新的 `Drawing` 模式，抛弃了传统的图片模板抠图方案。
    - 采用 **6 倍超采样 (Super Sampling) + 高斯模糊 (Gaussian Blur)** 技术实时绘制滑块。
    - 生成的滑块边缘平滑细腻，自带内阴影与半透明质感，完美融合背景。
- **多形状支持**：内置多种滑块形状，支持一键切换：
    - 🧩 拼图 (`jigsaw`)
    - ❤️ 红桃 (`red_heart`)
    - ♠️ 黑桃 (`spade`)
    - ♦️ 方片 (`diamond`)
    - ♣️ 草花 (`club`)
- **Unicode 图标验证码**：点击验证码支持 Unicode 图标，实现图文混合验证。图片上显示图标（如 ☕），前端提示显示文字说明（如 ``），提升趣味性和安全性。
- **安全增强**：
    - **干扰图**：滑动验证码支持随机生成干扰滑块（位置、形状随机），增加机器识别难度。
    - **干扰字**：点击验证码支持生成随机干扰文字。
    - **智能布局**：采用 **随机坐标 + 碰撞检测算法**，确保文字不重叠、不越界。
- **双模式兼容**：保留了旧版"图片模板"模式 (`resource`)，老用户可无缝切换。

📸 效果预览
------

[](#-效果预览)

### 滑动验证码 (Drawing 模式)

[](#滑动验证码-drawing-模式)

*(无需任何图片素材，纯代码实时绘制)*

> 效果图占位：建议运行 testImage.php 查看实际效果

### 点击验证码

[](#点击验证码)

支持文字点选，自带干扰文字与随机布局。

🛠 安装
----

[](#-安装)

### 要求

[](#要求)

- PHP &gt;= 7.1
- ext-gd
- ext-openssl

### Composer 安装

[](#composer-安装)

```
composer require fastknife/ajcaptcha
```

🚀 快速开始
------

[](#-快速开始)

### 1. 原生 PHP 使用

[](#1-原生-php-使用)

```
