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 服务器内部错误
提示:所有错误响应都会包含 statuscodemessage 字段,部分情况下会包含详细的错误信息。