SG11在线加密系统使用教程

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

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

SG11 是一款广泛用于 PHP 源码保护的商业混淆与加密工具,其核心能力是将 PHP 脚本编译为不可逆的字节码,并绑定至特定服务器环境(如域名、IP 或硬件指纹),有效防止代码泄露与非法复用。本文以 PHP 8.1 环境为例,介绍 SG11 的典型集成流程与关键注意事项。

一、环境准备

确保已安装官方 SG11 扩展(非开源组件):

; php.ini 中启用扩展
extension=sg11.so   ; Linux/macOS
; extension=php_sg11.dll  ; Windows

重启 Web 服务后,执行 php -m | grep sg11 验证加载成功。

二、加密脚本示例

SG11 提供命令行工具 sg11cli(需授权许可)。以下为加密单文件的标准流程:

# 加密 index.php,绑定到域名 example.com,有效期至2025-12-31
sg11cli --input=index.php \
        --output=protected/index.php \
        --domain=example.com \
        --expire=2025-12-31 \
        --obfuscate=high

三、PHP 运行时检测与容错

建议在入口文件中加入运行环境校验逻辑,提升健壮性:

<?php
// check_sg11.php —— SG11 运行时健康检查
if (!extension_loaded('sg11')) {
    die('❌ 错误:SG11 扩展未启用,请检查 php.ini 配置');
}

// 检查当前域名是否匹配授权(需 SG11 v4.2+ 支持)
if (function_exists('sg11_check_domain') && !sg11_check_domain($_SERVER['HTTP_HOST'] ?? '')) {
    error_log("SG11 域名校验失败:{$_SERVER['HTTP_HOST']}");
    http_response_code(503);
    die('🔒 授权验证失败,请联系管理员');
}

// 可选:获取加密信息(调试用途)
if (function_exists('sg11_info')) {
    $info = sg11_info();
    // ['version' => '4.3.1', 'licensed_to' => 'example.com', 'expires' => '2025-12-31']
}
?>
✅ 最佳实践:check_sg11.php 作为所有受保护脚本的前置包含项:
require_once __DIR__ . '/check_sg11.php';

四、常见问题处理

  • “Function not found” 错误? → 确认 SG11 版本与 PHP 主版本严格匹配(如 PHP 8.1 需 SG11 4.3+);
  • 加密后页面空白? → 检查错误日志,常见原因为内存限制不足(建议 memory_limit=256M);
  • 如何更新授权? → 使用 sg11cli --renew 命令刷新许可证,无需重新加密源码。
⚠️ 重要提醒:SG11 加密不可逆,务必保留原始未加密源码及许可证备份。生产环境部署前,应在测试服务器完整验证功能与性能影响。

SG11 并非万能方案,它解决的是「静态代码防护」问题。开发者仍需结合 HTTPS、权限控制、敏感信息分离等纵深防御策略,构建完整的应用安全体系。

撰文:PHP 安全实践组|更新日期:2024年6月

```