SourceGuardian 加密
SG17 高强度加密,需安装 Loader 扩展
适合需要长期商业交付、环境绑定和多版本兼容的 PHP 项目。上传、绑定、许可证生成与支付链路全部在同一工作台完成。
- 文件支持:支持单个 .php 文件或 .zip 压缩包上传(Max 50MB)。
- 版本选择:建议根据目标服务器环境勾选对应的 PHP 版本,支持多选以增强兼容性。
- 环境绑定:通过“配置绑定选项”可限制域名、IP 或机器 ID,防止源码被非法分发。
- 高级参数:可设置代码压缩等级、自定义头部代码以及错误处理逻辑。
- 安全提示:加密后的结果包下载有效期为 24 小时,请及时下载并妥善保管。
支持 PHP 5.5 - 8.5,可多选
这些文件将被编码为“自定义非PHP”模式,可通过 sg_load_file() 读取
会基于当前版本、绑定和许可证配置生成可复制的 CLI / CI 示例。
许可证生成
生成 SourceGuardian 项目许可证文件
适合在上线前统一生成 ProjID、ProjKey 与许可证文件,减少人工拆散操作,便于直接交付给客户或部署同事。
- 推荐顺序:先生成项目凭证,再确认许可证文件名与高级配置,最后再导出许可证。
- 交付场景:如果要把同一项目分发给不同客户,建议每个客户保留独立联系方式与许可证记录。
- 文件命名:许可证文件名尽量和项目或客户名称有关,便于部署和回查。
- 结果管理:生成后可立刻下载,也能回到许可证查询页按联系方式反查。
许可证信息查询
查询已保存的许可证记录和联系方式
适合售后、补发、续费和部署排查场景。你可以按邮箱、手机、QQ、微信做精确查询,并直接打开记录详情。
当前前台不会默认展开全部许可证记录,适合售后、客服或交付同事直接按单个客户身份回到授权记录。
- 适合谁用:客服、售后、交付同事可按客户联系方式快速反查已生成许可证。
- 查询原则:当前是精确匹配,不会在前台直接暴露全量记录。
- 详情能力:进入详情后可以复制关键参数、导出该条 JSON,并查看联系方式是否完整。
支付与加密日志
按联系方式查询支付订单与对应加密结果(下载链接/支付时间)
适合排查“用户已付款但没拿到包”、“退款状态不清楚”、“订单和加密任务需要对应确认”等场景。
这页更像订单排查台。先找到支付订单,再确认加密任务、结果包和退款节点是否都已经正确写回。
- 查不到日志:优先确认付款时填写的联系方式类型和值是否一致。
- 已支付未取包:打开详情查看绑定时间线和下载结果是否已写回。
- 退款争议:详情里会展示退款尝试与成功记录,适合快速核对。
API接口功能
开放加密接口、签名联调和 SDK 资源入口
适合合作站点、自动化交付系统或内部后台服务接入。这里集中保留测试工具、SDK、签名辅助和核心端点说明,减少来回找文档的成本。
- 推荐顺序:先调用状态接口验证密钥,再接加密接口,最后接下载接口回收交付物。
- 适用场景:第三方站点接入、SaaS 后台自动加密、企业内部交付流水线。
- 排查重点:优先核对请求路径、时间戳过期、Nonce 重放和签名串顺序。
待生成
待生成
- 先同步 API Key:优先沿用高级配置页里的 API Key,避免签名面板和联调工作台参数不一致。
- 路径不要带域名:签名时只使用请求路径,通常是 /openapi/v1/status.php 这一类形式。
- 下载接口先签路径:download 的查询参数单独拼在请求 URL 上,签名仍以 /openapi/v1/download.php 为准。
支持 PHP 文件和 ZIP 包上传,返回 file_id、结果包信息和执行统计。
查询服务状态、密钥有效性和调用前置健康信息。
根据 file_id 拉取 ZIP 结果包,适合自动化交付链路回收成品。
https://sg.rulewl.com/openapi/v1
API密钥 + 时间戳 + Nonce + 请求方法 + 请求路径
X-API-Key: sk_live_your_api_key X-Timestamp: 1710000000 X-Nonce: 32位随机字符串 X-Signature: your_hmac_signature
curl -X GET "https://sg.rulewl.com/openapi/v1/status.php" \ -H "X-API-Key: sk_live_your_api_key" \ -H "X-Timestamp: 1710000000" \ -H "X-Nonce: 32位随机字符串" \ -H "X-Signature: your_hmac_signature"
API接口文档
以真实接口实现为准的接入说明、参数矩阵、响应样例与联调建议
这里同步了鉴权头、签名规则、真实参数名、下载生命周期、错误码与联调顺序,适合开发、运维和合作方技术同学直接照着接。
https://sg.rulewl.com/openapi/v1
1. API Key 2. Unix 时间戳 3. 32位 Nonce 4. HTTP Method 5. Request Path(仅路径,不含域名与查询串)
X-API-Key: sk_live_your_api_key
X-Timestamp: 1710000000
X-Nonce: 32位十六进制随机串
X-Signature: hash_hmac('sha256', sign_string, API_KEY)
curl -X POST "https://sg.rulewl.com/openapi/v1/encode.php" \ -H "X-API-Key: sk_live_your_api_key" \ -H "X-Timestamp: 1710000000" \ -H "X-Nonce: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" \ -H "X-Signature: your_hmac_signature" \ -F "files[]=@/path/to/demo.php" \ -F "php_versions=[\"8.5\"]" \ -F "proj_id=myproject" \ -F "project_key=your_project_key" \ -F "skip_scan=false"
curl -X GET "https://sg.rulewl.com/openapi/v1/status.php" \ -H "X-API-Key: sk_live_your_api_key" \ -H "X-Timestamp: 1710000000" \ -H "X-Nonce: 6f5e4d3c2b1a00998877665544332211" \ -H "X-Signature: your_hmac_signature"
curl -X GET "https://sg.rulewl.com/openapi/v1/download.php?id=32位小写十六进制file_id" \ -H "X-API-Key: sk_live_your_api_key" \ -H "X-Timestamp: 1710000000" \ -H "X-Nonce: 00112233445566778899aabbccddeeff" \ -H "X-Signature: your_hmac_signature" \ --output encrypted_result.zip
- Status 用途:探测服务是否可用、当前 Key 是否有 encode、download、status 权限,以及剩余额度与支持版本。
- Download 规则:id 必须是 32 位小写十六进制字符串;成功下载后,服务端会删除结果文件与映射记录。
- 下载策略:若 encode 响应里已有 download_url,可用于便捷直达;业务侧若想统一鉴权与日志,建议仍以 file_id 调 download.php。
| 端点 | 方法 | 关键参数 | 说明 |
|---|---|---|---|
| /openapi/v1/status.php | GET | 无业务参数 | 返回服务状态、当前 Key 权限、频率限制、支持的 PHP 版本与上传限制。 |
| /openapi/v1/encode.php | POST | files[]、php_versions、proj_id、project_key、copyright、external_file、skip_scan | 支持多文件与 ZIP 上传;files[] 必填;php_versions 需传 JSON 数组字符串。 |
| /openapi/v1/download.php | GET | id | id 必填,格式必须为 32 位小写十六进制 file_id;成功后返回 ZIP 流并回收文件。 |
| Encode 字段 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| files[] | 是 | File[] | 支持 .php 与 .zip,多文件总量最多 50 个,总大小上限 50MB。 |
| php_versions | 否 | JSON Array | 默认 ["8.5"],支持 5.3-8.5 的多个版本组合。 |
| proj_id / project_key | 否 | String | 用于项目标识与项目密钥配置,适合业务侧做项目级隔离。 |
| copyright / external_file / skip_scan | 否 | String / Boolean | 版权信息、外部入口配置与是否跳过安全扫描;skip_scan 默认 false。 |
{
"success": true,
"request_id": "req_xxxxxxxx",
"message": "加密成功",
"data": {
"file_id": "32位小写十六进制file_id",
"download_url": "当前部署返回的下载地址",
"filename": "encrypted_20260409_120000.zip",
"size": 12345,
"size_formatted": "12.06 KB",
"statistics": {
"files_processed": 3,
"files_encoded": 3,
"php_versions": ["8.5"]
}
}
}
| 错误码 | 常见场景 | 排查建议 |
|---|---|---|
| METHOD_NOT_ALLOWED | 方法不匹配,例如对 encode 发 GET。 | 严格按 status/download 用 GET、encode 用 POST。 |
| VALIDATION_ERROR / MISSING_PARAMETER | 缺失 files[] 或 download 缺少 id。 | 先校验表单字段,再发起请求;下载时确保 id 已回传到客户端。 |
| INVALID_PARAMETER | file_id 不是 32 位小写十六进制,或字段格式不合法。 | 不要截断 file_id,php_versions 必须是合法 JSON 数组字符串。 |
| FILE_NOT_FOUND / DOWNLOAD_ERROR | 文件已被下载回收、已过期,或磁盘读取异常。 | 拿到 file_id 后尽快下载,并记录 request_id 便于服务端排查。 |
$timestamp = (string) time();
$nonce = bin2hex(random_bytes(16));
$method = 'POST';
$path = '/openapi/v1/encode.php';
$signString = $apiKey . $timestamp . $nonce . $method . $path;
$signature = hash_hmac('sha256', $signString, $apiKey);
- 签名失败:优先核对请求方法是否大写、参与签名的 path 是否不含域名和 query string、时间戳是否过期。
- 上传被拒:确认文件类型为 .php 或 .zip,总体积未超过 50MB,总文件数不超过 50。
- 下载失败:确认 file_id 未被截断且此前未成功下载;若已超过保留时间,也会返回文件不存在。
高级配置
自定义加密参数和项目信息
这一页更像控制台底层参数区,适合在接入前先做项目级默认值配置,减少每次加密时的重复输入。
这一页更像底层参数控制台。优先维护项目级、长期有效的默认配置,首页执行任务时会更顺畅。
- 项目密钥:适合作为项目级默认值,不建议混用客户私有参数。
- 外部入口:如果你的项目有固定入口脚本,可以在这里统一维护。
- API 密钥:更多用于外部合作站点或接口联调,前台普通使用通常不需要填写。
使用帮助
了解如何使用 SG 加密平台
如果是第一次使用,可以先看这页再进入加密工作台;如果是售后或交付,也可以把这里作为统一操作说明入口。
- 下载时效:结果包保留时间有限,生成后建议立即下载并归档。
- 许可证联动:如需售后可追溯,尽量在生成或上传时填写完整联系方式。
- 排查路径:支付问题看支付日志,授权问题看许可证查询,部署问题先核对引擎与 Loader。