2016-07-18 118 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