分类 技术 下的文章

关于 php 代码混淆加密

2015 年初,利用业余时间开发了一套站群系统,手上掌管了近 300 多个域名和站点。

随着系统的商业化,站群系统需要对外出售,不得不对站群系统的代码进行加密。

研究了些市面上的 PHP 加密组件,发现除了eval、base64_encode等方式加密外,几乎没有任何门槛,分分钟破解。

心有不甘,笔者怀着一颗尝试的心,开始研究PHP混淆加密,并落实实现一套完整的混淆加密的方案:

  1. 混淆强度要高(毕竟PHP有着灵活的语法,实现起来)

  2. 加密方式性能损耗要控制在1%以内。(这点要求就不能使用eval、base64这种方式)

  3. 不依赖扩展

加密系统应用的场景为:

  1. 核心代码加密混淆。

  2. 模板加密。

  3. 图片、二进制文件加密。

通过研究市面的一些加密引擎和不断尝试后,最终系统终于面市,取名 EnPHP:

http://enphp.djunny.com/

混淆是EnPHP的最大特色,它能混淆系统里的变量、方法和类,使用unicode的编码方式,使得PHP源代码无法阅读。

EnPHP不会对代码进行修改逻辑、和注入相关代码,以至于过度加密,因为再加密的代码也是需要机器解码运行的。

经过大量 TestCase 和 5w+ 行系统测试和使用, 现 EnPHP 引擎已经内嵌于 mzphp2 框架中,为开发者们免费使用。