首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP源代码加密-有效性和缺点

PHP源代码加密-有效性和缺点
EN

Stack Overflow用户
提问于 2009-10-11 19:00:19
回答 6查看 3.6K关注 0票数 6

我有一些PHP源代码,我与托管公司XYZ托管。我正在使用PHP加密软件,如Zend或ionCube,以保护源代码不被任何人(系统管理员或黑客入侵系统管理员)查看。

  • 对于完全访问系统的人(比如系统管理员或黑客)解密源有多容易?我不知道加密软件是如何工作的,但我假设它们使用的是一些密钥,这些密钥必须留在服务器上,因此系统管理员或黑客可以访问。如果你在技术上
  • 使用这样的源加密是否会减慢站点的速度?(如果任何人有第一手经验或从有第一手经验的人那里知道;)

我对此的技术方面感兴趣,加密有多有效.和它的缺点,从谁使用或考虑使用它们。

谢谢(所有有帮助的答案/评论都已付诸表决)

编辑:到目前为止的答案似乎忽略了我想要理解的东西。我在试着理解加密的有效性。我真的没有任何代码需要保护免受坏人的侵害,以上只是一个例子,所以像开放源码的建议或聘请律师并不能真正解决我的技术好奇心。A+给任何明白要点的人

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-10-11 20:00:52

加密(或编码器)方案试图将代码隐藏为加密文件。显然,代码必须在执行时解密,这增加了无用的开销。其中一些还坚持要求主机系统安装特殊的例程,因为它们不想只为您设置特殊的配置,这是主机非常不喜欢的。但糟糕的是,它们包含了自己的失败种子:要在目标主机上运行,它们必须包含解密软件。因此,如果您使用一个,您交付非常必要的解密器,以获得您的代码。这只是定位它的问题;一旦找到,您的代码就可以完全解密并公开。这些根本不安全。

混淆方案搅乱标识符的名称,删除注释和格式。但是,模糊代码的运行与原始代码完全一样,不需要任何开销,也不需要特殊的运行时支持。模糊处理依赖于一般理解程序的固有困难。当程序设计得很好、名称选择得很好、代码中有很好的注释时,程序就很难理解。我们都希望我们的程序设计得很好,但是如果名字不好,评论也消失了,它们就很难理解了。检查自己对他人代码的体验。

人们会说,“但任何人都可以检查模糊代码并理解它”。如果你有一个很小的应用程序,那就是事实。如果您的应用程序有任何扩展(数十页代码),那么当所有变量名称都被置乱时,很难理解它在做什么。代码越大,保护代码的效果就越好。

如果您想看到一个PHP混淆器所做的例子,请参阅我们的灌木丛PHP混淆器

票数 7
EN

Stack Overflow用户

发布于 2009-10-11 20:10:21

Zend和ionCube在数学意义上都不使用加密来保护代码。他们所做的,除了其他答案已经描述的混淆,是编码。

这是一个通常由PHP解释器在每次访问脚本时自动完成的过程-- PHP脚本被编译成字节码格式,然后执行。像Zend和ionCube这样的编码器所做的实质上是一个等价的过程,只需要完成一次,然后只有“编译”的字节码才能被提供/上传到服务器。

这意味着,实际上重新创建您曾经编写的相同代码是完全不可能的。并不是不可能的,这也适用于混淆,是反向工程编译或混淆的代码,以了解它在做什么。

总之,我要说的是,这些产品非常擅长于保护您的代码--而不是保护您的逻辑。

票数 7
EN

Stack Overflow用户

发布于 2009-10-11 19:34:32

你为什么要加密你的源代码?如果你把这作为一个安全防范潜在的黑客,那么请相信,当我说,如果他们真的想解密你的源代码,他们会这样做。上一次我检查的时候,使用ionCube是可能的。

至于性能影响,我相信Zend比ionCube快一点,因为它不需要任何额外的文件。但就像我之前说过的,什么都不要依赖加密。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1551463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档