PHP 為直譯語言,部署即公開原始碼。商業專案、授權機制、核心演算法需防止反編譯與竊取。Zend Encoder (後更名 Zend Guard) 將 PHP 原始碼編譯為中間碼 (bytecode),需配合 Zend Optimizer/Loader 執行。
ipconfig /all 取得 Physical Address (MAC),移除連字號,如 0080C8DBFC39pickup.php 下載 zend_encoder.datZendEncoderUnlimited-TestDrive-1.1.0-PHP_4.0.3-Windows-i386.zipC:\Program Files\Zend Encoder Unlimited\zend_encoder.dat 至 C:\Program Files\Zend\install_license.reg 匯入登錄檔zendenc source.php encoded.php 即可加密ZendOptimizer-1.0.0-PHP_4.0.4-Windows-i386.zipC:\Program Files\Zend Optimizer\php.ini 加入:
zend_optimizer.optimization_level=15
zend_extension_ts="C:\Program Files\Zend Optimizer\ZendOptimizer.dll"
phpinfo() 確認出現:with Zend Optimizer v1.0.0, Copyright (c) 1998-2000, by Zend Technologies<?php phpinfo(); ?>
加密前:純文字 PHP 碼
加密後 (zendenc phpinfo.php phpinfo_enc.php):
Zend 2000112001 ... 亂碼 ...
瀏覽器執行 phpinfo_enc.php 正常輸出 phpinfo,頂部顯示 Generated by a TRIAL VERSION of the Zend Encoder。
| 方案 | 特點 | 適用場景 |
|---|---|---|
| ionCube Encoder | 商業、支援 PHP 5.6-8.2、效能佳 | 商業專案首選 |
| PHP 內建 OPcache | 僅編譯快取,非加密,原始碼仍可讀 | 效能優化,非保護 |
| Swoole Compiler | 國產、支援 PHP 7/8、加密+效能 | 國內專案 |
| 原始碼混淆工具 | 免費、可逆、阻擋誠實人 | 低價值程式碼 |