DeckPHP API 接口文档
标准化 RESTful API 接口,方便外部系统或客户端调用 PHP 代码加密服务
快速开始
使用流程:首先验证卡密获取 API Token → 使用 Token 调用加密接口 → 获取文件列表 → 下载加密文件
1. 验证卡密获取 Token
curl -X POST https://deck.phpth.cn/api/verify \
-H "Content-Type: application/json" \
-d '{"card_key":"YOUR_CARD_KEY"}'
2. 使用 Token 调用加密接口
curl -X POST https://deck.phpth.cn/api/encrypt \ -H "api_token: YOUR_API_TOKEN" \ -F "files[]=@/path/to/file1.php" \ -F "files[]=@/path/to/file2.php" \ -F "file_paths[]=file1.php" \ -F "file_paths[]=file2.php"
接口概览
| 接口名称 | 请求方式 | 接口路径 | 说明 |
|---|---|---|---|
| 卡密验证 | POST | /api/verify |
验证卡密并获取 API Token |
| 获取配置 | GET | /api/config |
获取加密配置参数说明 |
| 执行加密 | POST | /api/encrypt |
上传文件并执行加密操作 |
| 获取文件列表 | GET | /api/files |
获取加密后的文件列表 |
| 下载文件 | GET | /api/download |
下载单个文件或批量打包下载 |
卡密验证接口
POST
/api/verify
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| card_key | string | 是 | 卡密字符串 |
成功响应示例
{
"status": "success",
"code": 200,
"message": "卡密验证成功",
"data": {
"api_token": "eyJjYXJkX2lkIjoxLCJjYXJkX2tleSI6I...",
"card_info": {
"card_key": "ABCD1234EFGH5678",
"max_files_per_encrypt": 100,
"max_encrypt_times": 1000,
"used_encrypt_times": 5,
"remaining_times": 995,
"expire_time": "2025-12-31 23:59:59"
}
},
"timestamp": 1698765432,
"datetime": "2024-10-31 12:30:32"
}
注意:获取的 API Token 有效期为 24 小时,过期后需要重新验证卡密。
获取加密配置接口
GET
/api/config
请求参数
无需参数
成功响应示例
{
"status": "success",
"code": 200,
"message": "获取配置成功",
"data": {
"config": {
"enable_variable_obfuscate": true,
"variable_obfuscate_times": 1,
"ob_function": 1,
"ob_function_length": 10,
...
},
"config_description": {
"description": "DeckPHP 加密配置参数说明",
"parameters": { ... }
}
}
}
加密配置参数说明
提示:以下是常用的加密配置参数。在调用加密接口时,可通过 config 参数以 JSON 格式传递自定义配置。
混淆功能配置
enable_variable_obfuscate
boolean
范围:
true / false
默认:
true
启用变量拆分混淆,提升代码安全性
variable_obfuscate_times
integer
范围:
1 - 2
默认:
1
变量拆分混淆的次数,建议1-2次
ob_function
integer
范围:
0 - 1
默认:
1
启用函数名混淆(1=启用,0=关闭)
ob_function_length
integer
范围:
5 - 15
默认:
10
混淆后函数名的长度
obfuscate_depth
integer
范围:
1 - 2
默认:
1
重复加密次数,数值越大混淆越深,建议1-2次
编码混淆配置
encode_str
integer
范围:
0 - 1
默认:
1
对字符串进行编码混淆(推荐启用)
encode_str_length
integer
范围:
5 - 15
默认:
10
字符串编码混淆的长度
encode_number
integer
范围:
0 - 1
默认:
1
对数字进行编码混淆
encode_gz
integer
范围:
0 - 1
默认:
1
对字符串进行GZ压缩混淆
高级功能配置
enable_goto_obfuscate
boolean
范围:
true / false
默认:
true
启用GOTO混淆(推荐启用)
goto_obfuscate_times
integer
范围:
1 - 2
默认:
1
GOTO混淆的次数,建议1-2次
insert_mess
integer
范围:
0 - 1
默认:
1
插入无用代码,增加反编译难度
eval_shell
boolean
范围:
true / false
默认:
false
启用EVAL虚拟加壳(高级安全特性)
执行加密接口
POST
/api/encrypt
请求头
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| api_token | string | 是 | API Token(通过验证卡密接口获取) |
| Content-Type | string | 是 | multipart/form-data |
请求参数(FormData)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| files[] | file | 是 | 待加密的文件列表(支持多文件上传) |
| file_paths[] | array | 是 | 文件路径列表(与files数组对应) |
| config | json | 否 | 自定义加密配置(JSON格式) |
成功响应示例
{
"status": "success",
"code": 200,
"message": "加密成功",
"data": {
"encrypt_result": {
"summary": {
"result_code": 200,
"success_count": 2,
"failed_count": 0,
"skipped_count": 0
}
},
"download_info": {
"single_files": [
{
"download_id": "api_file_abc123...",
"filename": "file1.php",
"size": 1024,
"formatted_size": "1.00 KB"
}
],
"zip_files": [],
"batch_download_available": true
},
"card_info": {
"remaining_times": 994,
"used_encrypt_times": 6
}
}
}
获取文件列表接口
GET
/api/files
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| api_token | string | 是 | API Token(请求头或GET参数) |
成功响应示例
{
"status": "success",
"code": 200,
"message": "获取文件列表成功",
"data": {
"files": [
{
"download_id": "api_file_abc123...",
"original_filename": "file1.php",
"encrypted_filename": "file1.php",
"file_size": 1024,
"formatted_size": "1.00 KB",
"file_type": "file",
"relative_path": "file1.php",
"file_exists": true,
"create_time": "2024-10-31 12:30:45"
}
],
"encrypt_record": {
"id": 123,
"encrypt_time": "2024-10-31 12:30:32",
"encrypt_time_stamp": "2024-10-31_12-30-32",
"download_count": 0,
"file_count": 1
}
}
}
文件下载接口
GET
/api/download
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| api_token | string | 是 | API Token(请求头或GET参数) |
| download_id | string | 单文件时必填 | 下载ID(从文件列表接口获取) |
| action | string | 否 | 下载类型:single=单文件,batch=批量打包(默认single) |
下载示例
# 下载单个文件 curl -X GET "https://deck.phpth.cn/api/download?api_token=YOUR_TOKEN&download_id=DOWNLOAD_ID" \ -o encrypted_file.php # 批量打包下载 curl -X GET "https://deck.phpth.cn/api/download?api_token=YOUR_TOKEN&action=batch" \ -o encrypted_files.zip
错误码说明
| HTTP状态码 | 错误码 | 说明 |
|---|---|---|
| 200 | 200 | 请求成功 |
| 400 | -1 | 请求参数错误 |
| 401 | -1 | 未授权(Token无效或过期) |
| 403 | -1 | 禁止访问(卡密无效) |
| 404 | -1 | 资源不存在 |
| 500 | -1 | 服务器内部错误 |
提示:所有错误响应都会包含
status、code、message 字段,部分情况下会包含详细的错误信息。