某些情況下需要包含php代碼,比如給客戶部署到內部網絡系統中時,需要保護代碼的知識產權,下面就Linux和windows分開來介紹php代碼的加密方法。
Linux下加密方法: php_screw
PHP screw 是一款輕量級的加密軟件。採用BSD License支持所有POSIX系統(Unix/Linux/Linux Like),不支持Windows
1.從官方站點下載最新版本:
http://sourceforge.net/project/showfiles.php?group_id=52025
2.可以自己定義用來加密的密碼 這個重要,裏面的改成你的,你要記住這一組數據
vi my_screw.h
3.編譯安裝
phpize;configure ;make;make install
4.加入php.ini中
5.編譯加密工具
cd ../tools make
6.將tools目錄下加密用的工具screw拷貝到適當目錄
cp screw /usr/bin/
php_screw_1.5有一個缺點就是screw 加密工具一次只能執行一個文件,如果你切換到你的php源碼目錄執行
解決辦法如下 ,執行
#find /path/to/php/source -name “*.php” -print | xargs -n1 screw
可以對/path/to/php/source目錄下的所有後綴爲php的文件加密,包括子目錄下的。
#find /path/to/php/source -name “*.screw” -print/xargs -n1 rm //刪除所有的.php源文件的備份文件
Windows下加密方法: zen_guard
首先,我們把PHP保護神請回家,從http://downloads.phpchina.com/zend/guard/5.0.0/ZendGuard-5_0_0.exe下載後,運行安裝包,一路點擊Next(下一步)即可安裝好。接下來讓我們準備一個簡單的PHP程序test.php,用來測試能否被Zend Guard保護起來。test.php的代碼如下:
phpinfo();
?>
打開Zend Guard,從File(文件)菜單點擊,新建一個項目,如圖1所示。點擊Next進入目錄和文件添加界面,因爲我們只是測試一個文件,所以點Add File將test.php添加進來,再點擊Finish(完成)即可生成項目。
這時,Zend Guard會自動打開新建立的項目,在界面的左邊列出項目中的文件,右邊列出項目的相關信息。現在,我們就可以將源代碼編譯了。點擊右邊Links(鏈接)中的Encode(編譯),界面最下面的Console(控制檯)窗口顯示“The operation has completed successfully.”,意思爲編譯已經完成。
現在再去加密後文件保存的目錄中,會看到其中也有一個test.php,它是否和原來的test.php一樣呢?用編輯軟件打開它,可以看到它不再是原來的內容了,如圖2所示。注意:自己一定要保存好原始代碼,不然丟失了,連你自己也沒有辦法查看和修改的。
接下來測試一下加密的代碼,從瀏覽器訪問加密後的PHP程序,哎呀,出錯了,不能運行,並顯示如圖3所示的信息。原來,使用Zend Guard加密後的PHP程序,還需要一個搭檔—Zend Optimizer,才能正常執行並提升效率。可從http://downloads.phpchina.com/zend/optimizer/3.3.0/ZendOptimizer-3.3.0a-Windows-i386.exe下載安裝。安裝過程中,“Choose the php.ini folder”這一步表示設置系統上PHP的配置文件php.ini的位置,“Choose the Web server's root folder”這一步表示設置Web服務器軟件所在的位置。安裝完成以後,用記事本打開php.ini,在最後我們會看到類似下面的配置信息:
[Zend]
zend_extension_manager.optimizer_ts="E:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_ts="E:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
這就表示Zend Optimizer已經安裝成功了,我們可以重新啓動Web服務器軟件,讓Zend Optimizer生效即可。注意:如果所使用的服務器已經安裝過或者包含了Zend Optimizer,就不用再次安裝了。