php原始碼安全加密之PHP混淆演算法

2021-09-08 12:17:41 字數 1117 閱讀 6215

php原始碼安全加密的前世今生,本想發在教程區中.不知道怎麼發,就寫在這裡面吧.

php加密,解密是一直的話題,本人菜鳥,今天就簡單向大家介紹一下並說說其中原理.提供一些加密的混淆演算法.

一\php的加密總體上來說分以下2種:

1\擴充套件元件類加密,代表有:zend\ioncube\sg\php_screw\bcompiler\bz2等.

2\免擴充套件加密:php某盾等為代表的一批.

二\他們的安全性?

元件類加密:對於擴充套件加密,zend類為代表的是先編譯成opcode再壓縮執行.理論上沒辦法得到源**.現在有一些zend破解,是通過opcode逆向轉回php原**,好的逆向效果在98%以上.不可能百分百,而php_screw等為代表的加密元件,是對源**進地xor加密,des加密等等. 在執行時要先解密,這樣的**是可以百分百被破解的.

免元件類加密:php某盾們,這一些都是在原有php**上面增加乙個外殼,類似於net程式的加殼方法.執行時先通過殼來完成對原始**的base64 eval 解壓縮等操作.最終通過eval執行. 最致命此類**可被劫持eval百分百還原.

三\什麼樣的加密才安全?

不加密才最安全.呵...這個沒說一樣.不過有乙個想法,可以增加解密的難度.簡要流程如下:

加密過程:php源**->php**混淆器->加密(免元件外殼或元件加密)->加密成品原始碼.

執行過程:引導程式(免元件外殼或元件加密)->php混淆**->執行**.

通過上面流程,我們可以看到因為php**進行了混淆處理,所以被得到的**是亂的.這樣的**還是可以執行,但會給閱讀者造成不易讀的情況.另外,載入的程式即外殼的安全性至關重要.好的外殼,才是保護程式的關鍵.

對一源**的混淆,可以操作的混淆內容有:php變數\php使用者函式\php系統函式\php類名\php字串,均可以完成加密.有人說過,這樣混淆效果也不好啊,如何更**?php支援變數名是ascii碼的127-255,而這一些字元在編輯器中看全是漢字亂碼. 這樣就可以增加難度性.

四\加密要付出,執行要代價!

如果只是簡單的加密函式名\變數名還好,如果對字串進行了加密保護.在進行每一次字串操作時均需要執行一次解密操作.會消耗時間,影響系統執行的效能.到使用哪一種加密您值得考慮.

本人**: 歡迎交流,有磚的輕拍.

php原始碼加密 screw plus

screw plus是乙個開源的php擴充套件,作用是對php檔案進行加密,網路上提供php加密的服務很多,但大多都只是混淆級別的加密,被人拿到加密檔案問只要有足夠耐心就能破解,與之不同的是,screw plus採用擴充套件來加解密,而且是全球金融業流行的高強度aes256加密,除非破解了伺服器,否...

phpstudy 實現PHP原始碼加密

環境建議使用phpstudy wampserver 不支援執行緒不安全的php版本非常麻煩 工具 zendguard zendloader檔案 3.開啟phpstudy 選擇nts版本,在php.ini 中加入 zend.loader 模組,注意檔案路徑 zend.loader zend loade...

php中的原始碼加密

在我們開發的專案中,有一部分可能是用於商業用途,會部署在客戶提供的機器環境中。因為 php 本身是解釋型語言,所以未進行處理的 就會有洩露或被修改的風險。那麼我們可能會想到最簡單有效的方法就是進行加密混淆,然後配合一系列的校驗,來保護我們的 windows 環境下的 dll 檔案 注意 php be...