1747浏覽量

php源碼安全加密之PHP混淆算法

來源: 時間:2020-03-21
一(yī).PHP的加密總體(tǐ)上來說分(fēn)以下(xià)2種:
1.擴展組件類加密,代表有:zend、ionCube、SG、php_screw、bcompiler、BZ2等;
2.免擴展加密:php某盾等爲代表的一(yī)批;

二.它們的安全性如何?
組件類加密:對于擴展加密,ZEND類爲代表的是先編譯成opcode再壓縮執行.理論上沒辦法得到源代碼.現在有一(yī)些ZEND破解,是通過OPCODE 逆向轉回PHP原代碼,好的逆向效果在98%以上.不可能百分(fēn)百,而php_screw等爲代表的加密組件,是對源代碼進地xor加密,DES加密等等. 在運行時要先解密,這樣的代碼是可以百分(fēn)百被破解的.
免組件類加密:PHP某盾們,這一(yī)些都是在原有PHP代碼上面增加一(yī)個外(wài)殼,類似于NET程序的加殼方法.執行時先通過殼來完成對原始代碼的base64 eval 解壓縮等操作.最終通過Eval執行. 此類代碼可被劫持eval百分(fēn)百還原.

三.什麽樣的加密才安全?
增加解密的難度.簡要流程如下(xià):
加密過程:PHP源代碼->PHP代碼混淆器->加密(免組件外(wài)殼或組件加密)->加密成品源碼.
執行過程:加載程序(免組件外(wài)殼或組件加密)->PHP混淆代碼->執行代碼.

通過上面流程,我(wǒ)們可以看到因爲PHP代碼進行了混淆處理,所以被得到的代碼是亂的.這樣的代碼還是可以執行,但會給閱讀者造成不易讀的情況.另外(wài),加載的程序即外(wài)殼的安全性至關重要.好的外(wài)殼,才是保護程序的關鍵.
對一(yī)源代碼的混淆,可以操作的混淆内容有:PHP變量、PHP用戶函數、PHP系統函數、PHP類名、PHP字符串,均可以完成加密.有人說過,這樣混淆 效果也不好啊,如何更變态?PHP支持變量名是ASCII碼的127-255,而這一(yī)些字符在編輯器中(zhōng)看全是漢字亂碼. 這樣就可以增加難度性.

四.加密要付出,執行要代價!
如果隻是簡單的加密函數名、變量名還好,如果對字符串進行了加密保護.在進行每一(yī)次字符串操作時均需要執行一(yī)次解密操作.會消耗時間,影響系統執行的性能.到使用哪一(yī)種加密您值得考慮.

聯系我(wǒ)們

一(yī)次需求提交或許正是成就一(yī)個出色産品的開(kāi)始。
歡迎填寫表格或發送合作郵件至: qczsky@126.com

大(dà)理青橙科技

電(diàn)話(huà):13988578755 13988578755

郵箱:qczsky@126.com

地址:大(dà)理市下(xià)關龍都春天10層