2016-07-18 182 views
-1

如何編碼或加密PHP源代碼?PHP源代碼加密/混淆器

  1. 我試過這一個PHP Base64 encoder,問題是很容易解密知道它的人。

  2. 對於更強大的加密,我使用這個AES Enryption,但是如果我加密一些PHP代碼,我的頁面不起作用。

哪種方法最好?我不想使用Ioncube或Loaders。

+4

可能的[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。你應該更擔心某人能夠得到源代碼...... – FirstOne

回答

0

加密PHP代碼可能會給您一種錯誤的安全感。真正加密的代碼將無法運行,因爲PHP解析器不會理解它。我認爲想想你想要做什麼更準確加擾混淆代碼。這使得代碼難以閱讀,但它永遠是可逆的,這意味着如果你保護了一個對付有動機的對手的高價值東西,混淆只會給你一些時間。

可能有很多解決方案用於混淆代碼。其中一個比較受歡迎的選項是IonCube Loader。我從來沒有使用它,我不熟悉它的有效性,但它是我唯一知道的。歡迎其他人加入他們的反饋。

爲了保護你的源文件,你只是不想把它們放在一個他們可以被不信任的人訪問的環境中。例如,您可以採取一個簡單的步驟,確保您的關鍵PHP文件不在Web服務器上的公共可訪問目錄之外(通常稱爲public_htmlwww)。

+0

「真正加密的代碼將無法運行,因爲PHP解析器不會理解它。」 - 這就是爲什麼像ionCube這樣的解決方案有一個擴展來執行代碼。編碼首先編譯爲字節碼,然後爲其添加保護。有些還加密,如V9 ionCube,您可以使用不存儲在任何地方的動態密鑰,解決存儲密鑰固有的弱點。儘管OP不需要擴展,所以唯一的選擇是通過eval()保護源代碼。這可能就足夠了,但是源代碼可以很容易地暴露出來。披露:我與ionCube相關聯。 – Nick

+0

@Nick你是什麼意思「*保護源通過eval()*」? – BeetleJuice

+0

正如你所說的,PHP本身只能理解源代碼,所以任何不使用擴展的保護器都必須將損壞的代碼恢復爲某種形式的源代碼。 (AGH!恨意外擊中了回覆發表評論)然後這個方法是在恢復的源代碼上調用eval()。可以通過修補eval()使用的PHP引擎API C例程來暴露源代碼。 – Nick