关于 php 代码混淆加密
2015 年初,利用业余时间开发了一套站群系统,手上掌管了近 300 多个域名和站点。
随着系统的商业化,站群系统需要对外出售,不得不对站群系统的代码进行加密。
研究了些市面上的 PHP 加密组件,发现除了eval、base64_encode等方式加密外,几乎没有任何门槛,分分钟破解。
心有不甘,笔者怀着一颗尝试的心,开始研究PHP混淆加密,并落实实现一套完整的混淆加密的方案:
混淆强度要高(毕竟PHP有着灵活的语法,实现起来)
加密方式性能损耗要控制在1%以内。(这点要求就不能使用eval、base64这种方式)
不依赖扩展
加密系统应用的场景为:
核心代码加密混淆。
模板加密。
图片、二进制文件加密。
通过研究市面的一些加密引擎和不断尝试后,最终系统终于面市,取名 EnPHP:
混淆是EnPHP的最大特色,它能混淆系统里的变量、方法和类,使用unicode的编码方式,使得PHP源代码无法阅读。
EnPHP不会对代码进行修改逻辑、和注入相关代码,以至于过度加密,因为再加密的代码也是需要机器解码运行的。
经过大量 TestCase 和 5w+ 行系统测试和使用, 现 EnPHP 引擎已经内嵌于 mzphp2 框架中,为开发者们免费使用。
站长请问一下!怎么安装 mzphp 啊https://git.oschina.net/mz/mzphp2
clone或者下载框架后,在根目录建立一个新项目目录,复制 tools 目录 create_project.php 至新项目目录,用浏览器访问即可。
更多教程请看:https://djunny.gitbooks.io/mzphp/content/index.html
感谢作者提供了这么好的开源项目
代码加密后 替换原先的,(就是之前使用加密程序升级了,就覆盖了下)结果就报 500 了 ,php版本5.*的都出现过此问题,请问有什么结局办法吗?
试试不要「混淆类名」,或者仍然不行,请发个代码至邮箱: 1999_627_60(at)qq.com(去除下滑线)
帮您调试一下。
请教下为什么加密后源码出现了很多$_SERVER[$_GET]之类的变量
这是将代码部分内容加密和压缩在这些变量里。
访问enphp_project.php直接空白页 ,设置了也没用 怎么弄呢?
您可以在这个文件最上方,开启一下 error_reporting(E_ALL);
看看是否有什么错误出现。