2014-03-02 33 views
1

我不想把我的代碼給客戶端。我知道沒有任何這樣的方式使我的代碼100%安全地從客戶端或其他開發者編輯,但至少我認爲從可能的客戶端我可以隱藏我的代碼,爲此我使用以下方式:我想讓我的PHP主類壓縮,並使用它像正常的PHP代碼

For例如,我有以下代碼:

$php = base64_encode('<?php function add($a,$b){echo($a+$b);} add(30,40); ?>'); 

上述生產線生產的我的PHP代碼以下代碼:

PD9waHAgZnVuY3Rpb24gYWRkKCRhLCRiKXtlY2hvKCRhKyRiKTt9IGFkZCgzMCw0MCk7ID8+ 

我用gzencode()方法來壓縮這樣的上述生成的代碼:

$txt = "PD9waHAgZnVuY3Rpb24gYWRkKCRhLCRiKXtlY2hvKCRhKyRiKTt9IGFkZCgzMCw0MCk7ID8+"; 
$ph = gzencode($txt,8); 

我可以使用下面的代碼獲取原始PHP代碼:

echo(base64_decode($ph)); 

它產生:

<?php function add($a,$b){echo($a+$b);} add(30,40); ?> 

現在,這個代碼顯示在源代碼的瀏覽器,但我想像原始的PHP代碼一樣運行此代碼,那麼,我需要做些什麼才能使這個可執行文件?

感謝

+0

爲什麼還要麻煩?如果你的「加密」只是base64/gzip,那麼即使嘗試也是毫無意義的。只需將其保留爲常規代碼並在代碼上打上版權聲明即可。這會給你提供更多的保護,而不是你的基本麥片盒解碼環更好的系統。如果你堅持這樣做,那麼使用'eval()'。 –

+0

謝謝Marc B,我住在那裏沒有懲罰盜版的國家。因此我正在嘗試這樣做。 –

回答

2

您可以使用EVAL運行字符串作爲內嵌代碼。檢查這個(eval) 你也可以創建一個你的字符串代碼應該在裏面的匿名函數(create_function

+2

請記住,這種混淆會降低應用程序的性能,可能會非常顯着,並會使操作碼緩存無法加速您的應用程序。 – duskwuff

+0

其實我想讓我的一個類文件免受客戶端的編輯/更新。 –