SG11在线加密系统使用教程

```html SG11在线加密系统使用教程 | PHP 开发指南

SG11在线加密系统使用教程(PHP 开发指南)

注意:SG11 并非官方标准加密协议,而是国内部分 PHP 混淆/保护工具(如 SourceGuardian 的旧称 SG11)的俗称。本文所指为基于 SourceGuardian v11+ 的 PHP 代码加密与部署实践,适用于企业级源码保护场景。

一、环境准备

确保运行环境满足以下要求:

  • PHP 版本:7.2–8.2(SG11 不支持 PHP 8.3+)
  • 已安装 SourceGuardian Loader(需匹配 PHP SAPI 类型,如 php_sguard.dllixed.7.4.lin
  • 验证加载:在 phpinfo() 中搜索 sourceguardian 确认启用

二、加密流程(本地开发端)

使用官方 SourceGuardian Encoder 工具(GUI 或 CLI)加密 PHP 文件。PHP 端无需调用加密逻辑——加密是编译时行为,非运行时函数。

✅ 正确做法(命令行示例):

# Linux/macOS 示例(需下载 Encoder CLI)
./encoder --encode --phpver 7.4 --license /path/to/license.key \
          --output ./protected/ index.php config.php

❌ 错误认知:SG11 不是openssl_encrypt() 那样的运行时加密函数,PHP 代码中 不包含任何 SG11 加密 API 调用

三、部署与运行(服务器端)

加密后的文件(如 index.php.ixed 或直接覆盖原文件)可直接被 PHP 解析,前提是 Loader 已正确加载:

<?php
// 无需任何额外代码 —— SG11 文件由 Loader 自动识别并解密执行
echo "Hello from protected code! PHP version: " . PHP_VERSION;
require_once 'config.php.ixed'; // 或直接 require 'config.php';
?>

四、关键配置检查(php.ini)

确保 php.ini 包含以下配置(路径根据系统调整):

; Linux 示例
zend_extension=/usr/lib/php/20200930/ixed.7.4.lin

; Windows 示例
zend_extension="C:\php\ext\php_sguard.dll"

; 启用保护(可选)
sourceguardian.enable=1
sourceguardian.restrictions=0
⚠️ 重要提醒:SG11 加密后无法反编译还原源码,但存在兼容性风险(如扩展冲突、OPcache 异常)。建议加密前完整测试,并始终保留原始源码备份。

五、常见问题速查

  • 报错 “SourceGuardian loader not installed” → 检查 zend_extension 路径及权限,重启 Web 服务
  • 加密文件空白或 500 错误 → 确认 PHP 版本与 Encoder 版本严格一致(如 7.4.33 必须用 7.4 Encoder)
  • 无法加载 .ixed 文件 → 使用 sg_loadtest 工具诊断 Loader 兼容性

SG11 是成熟的商业级 PHP 保护方案,其价值在于部署即生效、零侵入式集成。开发者只需专注业务逻辑,安全交付交由 Encoder 与 Loader 协同完成。

🔗 官方资源:https://www.sourceguardian.com/

```