SG11在线加密系统使用教程

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

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

SG11 是一款广泛用于 PHP 源码保护的商业混淆与加密工具,其核心为 Zend Guard 的兼容性扩展。需特别说明:SG11 本身不提供“在线加密系统”服务——它是一款本地命令行工具(sg11.exesg11),无官方 Web API 或在线平台。本文旨在澄清常见误区,并提供合规、安全、可落地的 PHP 加密实践方案

⚠️ 重要前提:SG11 并非 SaaS 服务

网络上所谓“SG11在线加密网站”多为第三方非授权平台,存在严重风险:
• 源码上传至未知服务器,泄露商业逻辑;
• 生成文件可能被植入后门或二次打包;
• 违反 SG11 授权协议,导致法律风险。

✅ 正确做法:在自有可信环境(开发机/内网服务器)中离线使用官方 SG11 CLI 工具。

PHP 环境准备与本地加密流程

以 Ubuntu 22.04 + PHP 8.1 为例(Windows 类似):

# 1. 下载官方 SG11 CLI(需有效许可证)
wget https://example.com/sg11-v6.5-linux-x64.tar.gz  # 替换为授权下载地址
tar -xzf sg11-v6.5-linux-x64.tar.gz
chmod +x sg11

# 2. 创建待加密脚本(demo.php)
echo '<?php
function hello(\$name) {
    return "Hello, " . htmlspecialchars(\$name) . "!";
}
echo hello("World");
?' > demo.php

PHP 调用 SG11 的安全封装示例

以下为 仅限本地可信环境 的 PHP 自动化调用示例(禁用 shell_exec 生产环境!):

<?php
// ⚠️ 仅用于内网开发机,禁止在公网 Web 服务器启用 exec()
$sg11Bin = '/opt/sg11/sg11';
$inputFile = __DIR__ . '/demo.php';
$outputFile = __DIR__ . '/demo.php.enc';

// 构建安全命令(严格过滤参数)
if (file_exists($inputFile) && is_readable($inputFile)) {
    $cmd = escapeshellcmd("$sg11Bin -o " . escapeshellarg($outputFile) . " " . escapeshellarg($inputFile));
    
    $output = [];
    $returnCode = 0;
    exec($cmd . ' 2>&1', $output, $returnCode);
    
    if ($returnCode === 0 && file_exists($outputFile)) {
        echo "✅ 加密成功!输出文件:".basename($outputFile);
    } else {
        echo "❌ 加密失败:".implode("\n", $output);
    }
} else {
    echo "⚠️ 输入文件不可读";
}
?>

替代建议:更现代、开源的方案

若需 Web 化源码保护,推荐组合方案:

  • OPcache + 文件权限控制:部署时关闭 opcache.enable_cli=0,仅运行字节码;
  • PHP-Parser + 自定义混淆(如 nikic/php-parser)实现轻量逻辑混淆;
  • License 验证中间件:在入口文件校验签名,阻止未授权运行。

结语:源码安全的本质是信任链管理。选择 SG11,请坚持离线、可控、审计原则。真正的“在线加密”,应是您自主搭建的 CI/CD 流水线中一环,而非交由不可信第三方。

注:本文不构成 SG11 官方技术支持。请始终参考 ScrewTurn 官网 获取正版授权与文档。

```