是否可以隐藏/编码/加密php源代码,让别人拥有系统?

Posted

技术标签:

【中文标题】是否可以隐藏/编码/加密php源代码,让别人拥有系统?【英文标题】:Is it possible to hide/encode/encrypt php source code and let others have the system? 【发布时间】:2013-08-14 17:11:19 【问题描述】:

是否可以隐藏/编码/加密php文件/源代码,让其他人在他们的机器上安装并运行系统?

【问题讨论】:

我听说过 ZendGuard,但它不是 100% 安全的。 zend.com/en/products/guard 没有什么是防弹的。所以答案是否定的。 我觉得这种方式是不正确的,你可以建立正式的合同来防止重复使用你的软件... 买家只想购买系统而已。无论如何,我知道有一些合法的方法可以做到这一点。但我只是想知道是否有一些技术方法可以做到这一点。 这就是我编写 SaaS 的原因,它在我的服务器上运行。 【参考方案1】:

是的,您绝对可以隐藏/编码/加密 php 源代码,并且“其他人”可以将其安装在他们的机器上。您可以使用以下工具来实现相同的目标。

Zend Guard IonCube SourceGuardian phpSHIELD phpBolt (free)

但这些“其他人”也可以使用在线找到的其他工具和服务对源代码进行解码/解密。所以你不能 100% 保护你的代码,你可以做的是让别人更难对你的代码进行逆向工程。

以上这些工具中的大多数都支持编码和混淆。

编码将通过加密隐藏您的代码。 混淆会使您的代码难以理解。

您可以根据需要选择同时使用(编码和混淆)或其中之一。

【讨论】:

为了清楚起见,加密真的完成了吗?它只是编码正确! 有什么免费的替代品吗? @AhmadSeraj 你可以试试 fopo.com.ar 这是一个免费的在线混淆工具。【参考方案2】:

有很多方法可以做到这一点(您可能想要混淆源代码,您可以压缩它,...)。其中一些方法需要额外的代码来将您的程序转换为可执行形式(例如压缩)。

但是所有方法都不能做的事情是对源代码保密。另一方得到你的二进制代码,它总是可以再次转换(逆向工程)为人类可读的形式,因为二进制代码包含你源代码中提供的所有功能信息。

【讨论】:

这是唯一客观、正确、不误导的答案。 很好的答案,但要限定...逆向工程二进制代码是可能的,但并不容易。您需要愿意为此花费大量时间和资源,而其中的大部分威慑力。 它在服务器上运行,客户端只看到服务器端php脚本的输出。那么为什么需要加密或保护 php 文件呢?我们是否也需要保护在后端运行的 NodeJS javascript 文件?【参考方案3】:

有ionCube(我用的)、source guardian、Zen Guard等商业产品。

网上也有帖子声称他们可以对编码的程序进行逆向工程。它们的可靠性值得怀疑,因为我从未使用过它们。

请注意,这些解决方案中的大多数都需要在其服务器上安装编码器。因此,您可能希望确保您的客户对此感到满意。

【讨论】:

【参考方案4】:

您可以只拆分前端和后端。前端托管在客户服务器上,使用 API 调用服务器上的后端。这使所有专有代码保持专有,并迫使用户注册/支付订阅费用。

【讨论】:

OP 说 let others have the system installed and run on their machine 所以不能在你的服务器上托管后端【参考方案5】:

有一些在线服务用于混淆 php 以隐藏代码。 这是一个Right Coder's Free Obfuscator Online

@Glavić 是对的。 “没有什么是防弹的”。您可以对您的源代码进行编码并隐藏在更大的程序员而不是专家面前。

【讨论】:

【参考方案6】:

https://toolki.com/en/php-decoder/

解码隐藏的 PHP eval()、gzinflate()、str_rot13()、str_replace() 和 base64_decode()

【讨论】:

以上是关于是否可以隐藏/编码/加密php源代码,让别人拥有系统?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 php 中隐藏加密密钥或算法?

不想让人看到的日记最好保存在那里好呢?而且还永远不会丢失。

在PHP文件中编码密钥和密码

PHP源码加密

php隐藏地址栏有方法么?

c#怎么给源代码加密,就是就算给别人源代码