首頁  >  文章  >  後端開發  >  php源碼為什麼要加密

php源碼為什麼要加密

(*-*)浩
(*-*)浩原創
2019-06-04 10:34:025131瀏覽

PHP程式碼屬於開源WEB程式碼,不需要編譯,屬於解釋型語言。 (即在WebServer中追加對應副檔名的解釋程式即可完成程式碼的分析處理)。

根據PHP語言解釋型的特性,結合個項目需求,我們就可以使用php.exe(PHP解釋程式)對PHP程式碼進行解釋應用,使得PHP不僅適用於WEB環境也適用於本地處理,如:GTK等。
php源碼為什麼要加密

我手中有一專案採用Delphi通道(PIP)方式呼叫phpexe解釋器,解釋PHP程式碼完成WEB中的過程。
但是另一方面弊端又體現出來,由於PHP採用開源方式,不同用戶很容易看到使用PHP語言所篇寫的源程序,對源程序進行分析,很容易的得到數據連接,處理流程,甚至伺服器名稱等重要訊息,同樣的也不利於軟體開發人員的版權保護。因此就必須對PHP原始碼進行加密授權處理,即(Encode化與License授權)
#目前市場上較流行的對PHP進行上述加密授權的軟體主要有二種:
(1)Zend公司的ZendGuard。 —-目前最新版本5.0.1(2008/06/17)
(2)ionCube公司的ionCube PHP Encode。 —-目前最新版本6.5(2008/06/17)
對於這兩各較常用的Encode軟體其二者有著不同的功能與各自的優點。
Zend Guard
 Zend Guard只能對有PHP標記或原始碼的檔案進行加密(如:.php,inc等),對於其他不帶有PHP標記的文字方式保存的文件不能進行加密操作,支援期限,註冊碼。
支援PHP4.2.X~5.2.X版本的加密。
 使用的ZendOptimizer(PHP引擎)可以提高源碼20~50%以上的速度優化,結合ZendGuard可以提高至50%以上的性能速度 優化,且ZendOptimizer可以安裝於當前較多主流系統中。 (使用ZendGuard加密時可選擇ZendOptimizer版本進行更多的優 化處理),另外,ZendGuard只能用於配置了ZendOptimizer的環境中,不能獨立運行。 (必須在php.ini檔案中進行配置)

*另外需要值得注意的是ZendGuard在PHP4下的錯誤,對於PHP4的絕對路徑及相對路徑在加密時會出現較大的差異。

在PHP4.4.1環境下,如有下列兩個檔案:
Test.php

引用:

<?php
require_once(”inc/test1.php”);
?>

inc/Test1.php

#引用:

<?php
echo realpath(dirname(__FILE__));
?>

不進行加密的前提下,顯示的結果是: C:/LocalWeb/zendtest/inc
但是加密後卻顯示: C:/LocalWeb/zendtest-encode/zendtest

 可以發現經過ZendGuard加密後inc目錄被去掉了,顯示的是被包含之前的檔案的位址。 (即__FILE__被當成臨時常數顯示了出來)。
*此問題經過測試,在PHP5.2.6環境下並未發現此問題。

ionCube PHP Encode
ionCube PHP Encode,由ionCube開發,用於對PHP或非PHP檔案進行加密工作。 ionCube在功能方面經過測試可以優勝於Zend公司的ZendGuard,不僅支援期限,註冊碼,等加密方式,還支援對IP,MAC位址等複雜的加密方式。另外,對於ionCube來說不僅可以加密帶有 PHP標記或原始碼的php檔案還可以對非php檔案的以text方式保存的檔案進行加密操作,如xml,js,css等。 (但是讀寫時必須使用ionCube所提供的讀入API進行讀寫操作。)
可加密的PHP版本從PHP4.0.6~5.2.X(比ZendGuard高2個等級)
ionCube與Zend一樣,為了提升PHP效能最佳化也提供了對應的PHP引擎,可以為大多數作業系統提供PHP最佳化功能,但可惜的是,至今未提供Windows版本的PHP引擎。
對於先前ZendGuard中所說的PHP4環境下路徑問題,在ionCube中沒有出現,可以看出ionCube相對穩定。
對於ionCube來說,對具有PHP標記或原始碼的檔案採用壓縮加密方式處理,對於非php的文字類別檔案則採用加密方式處理。讀入時必須使用 “ioncube_read_file/ ioncube_write_file”讀寫檔案。因此在使用ionCube加密前需要對對應的PHP程式碼進行改造後才能使用。

以上是php源碼為什麼要加密的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn