就本次DZ論壇密碼洩露進行了一次加密方式的調研,分享以下内容;
關于php 加密方式有兩種
1、代碼層加密
加密:對配置檔案中資料庫的密碼字元串進行加密,可采用mac、jason
解密:對所有需要讀取資料庫配置檔案中密碼串的頁面所調用的方法,類添加對應的解密
優點:
對單個字元串的加密,便于後續對線上代碼的靈活變動
缺點:
改動大消耗人力高
2、應用層加密
加密:采用zend guard 6.0
加密php檔案,或對整個工程進行加密;
解密:php+添加zend子產品,php程式會自動解析加密後的檔案;
操作簡便
對于後續配置檔案修改等操作不便
官網下載下傳加密程式http://www.zend.com/en/downloads(具體下載下傳位址忘記了)ZendGuard-6_0_0.exe
官網下載下傳解密子產品http://www.zend.com/en/products/guard/thank-you-zend-guard?package=1518
安裝ZendGuard-6_0_0.exe
點選file建立project

配置項目名稱

點選ADDfile 選擇要加密的檔案
注意:加密檔案不可以和輸出檔案在同一目錄下,或存在父目錄與子目錄的關系

配置php版本,zend6.0
預設輸出版本為PHP5.4 需要将 User global source options 勾選取消,然後選擇PHP version 5.3

一切配置完畢後選擇工程點選 ENcode

執行完畢後會在設定的輸出目錄産生加密後的同名php檔案,将加密後的檔案放置linux代碼中;
需要配置linux
伺服器上php添加ZEND子產品,同時要確定與php版本比對
将解密壓縮包解壓
#tar zxf
ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
将包中so檔案放入php-lib庫目錄中
cp ZendGuardLoader.so
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626
添加php.ini配置如下
[Zend]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/ZendGuardLoader.so"
zend_optimizer.enable_loader="1"
zend_optimizer.optimization_level="0"