2016-12-28 95 views
-6

我一直在使用PHP桌面這很好,但如果我想共享一個項目,我不希望用戶看到代碼中的所有內容。PHP混淆器?

我試着建議的代碼保護器,但似乎沒有任何工作的當前版本。我發現了一個簡單的PHP混淆器代碼,但它提供了一個錯誤。它也會生成一些輸出,但無法回顯結果。

錯誤:

警告:php_strip_whitespace():未能打開流:C中沒有錯誤:\ XAMPP \ htdocs中\ PHP混淆\ Obfus.php上線11

代碼:

<?php 

//$infile = file_get_contents("Input.php"); 
$infile = '<?php echo "Hello World 123"; ?>'; 
$outfile = "Output.php"; 

echo "Processing $infile to $outfile\n"; 

$data="ob_end_clean();?>"; 

$data.=php_strip_whitespace($infile); // Remove whitespace 
$data.=gzcompress($data,9); // Compress data 
$data=base64_encode($data); // Encode in base64 

// Generate output text 
$out='<?ob_start();$a=\''.$data.'\';eval(gzuncompress(base64_decode($a)));$v=ob_get_contents();ob_end_clean();?>'; 

// Write output text 
//file_put_contents($outfile,$out); 
echo $out; 

?> 

有誰知道如何解決這個問題,讓閱讀PHP難以讓普通用戶下載exe文件?

這將是防止非編碼器,因爲它將打包在一個exe中,我知道這不是一個隱藏代碼源的安全方法。

還有沒有人有與當前版本的blenc等工作?即使遵循教程,我也沒有運氣。

+2

這個問題還有其他的錯誤你知道安全通過默默無聞嗎? – BugHunterUK

+0

是的,它只是爲了防止非編碼器。我知道這不是一種保護代碼的安全方法。 – zeddex

回答

4

php_strip_whitespace()的參數必須是文件名,而不是原始字符串。將數據寫入臨時文件,然後清理它,然後在完成後刪除臨時文件。

在任何情況下,你都會遇到這種情況。通過模糊處理的安全性根本不是安全的。任何能勝任的程序員都會識別base64編碼,並且解壓縮壓縮數據是微不足道的。然後,一個體面的IDE可以通過幾個按鍵恢復丟失的空白。此外,您的代碼及其eval(gzuncompress(base64_decode($a)))字面上告訴用戶您首先對代碼進行了混淆。

如果您不希望用戶訪問源,請不要分發源,期限。使用API​​或編譯器,而不是混淆器。

+0

謝謝,我也知道這不是一種安全的保護方法,這就是爲什麼我說「讓閱讀PHP對普通用戶更難」。我只是想要一些基本的東西,讓非編碼員遠離源碼,即使是exe文件,反正也有反編譯器。 – zeddex