PHP 代码加密推荐,哪个好用?试了一圈说说结论
「PHP 代码加密推荐,哪个好用?」这个问题我自己搜过不止一次,也踩过几次坑。
先说结论:能不能用看四点,好不好用看两件事。 下面一条条说。
一、PHP 为什么非要加密?
因为 PHP 是解释型语言,源码就是产品本身。交给客户、传上服务器,等于把命交出去。
几个具体场景你大概率遇到过:
- 外包项目部署到客户服务器,尾款还没结,代码已经在别处跑起来了
- 商业插件卖出去一份,过几天出现在资源站,作者栏换成了别人的名字
- 想按年收费,可 PHP 本身没有许可证机制,只能靠「信任」两个字
这不是代码写得不好,是语言特性决定的。
二、常见的几种做法,为什么都不太够用?
我前几年试过一圈:
- 加壳:壳本身能扒
- 混淆器:只是把可读性打乱,认真的人花点时间照样还原
- 自己写 license 校验:找到那个 if 删掉就完了
它们有个共同毛病:改完还能跑。只要改完还能运行,就挡不住人。
三、那怎么判断一个加密工具好不好用?
我给自己定了四条硬指标:
- 加密完还能不能正常跑 —— 这是底线,跑不起来后面全免谈
- 强度能不能分档 —— 核心算法和普通页面不该一个待遇
- 改一个字节会不会拒绝执行 —— 这条最关键
- 兼容性 —— PHP 版本、框架、服务器要不要装扩展
外加一条软指标:出问题的时候作者还在不在。加密工具是要陪你交付给客户的东西,作者跑路了比什么都麻烦。
四、所以我推荐哪个?
按上面四条对下来,我现在用的是 CtouyPHP
- 产物是纯 PHP,服务器端零扩展依赖,上传即用;PHP 5.6 到 8.4 共十一个版本实测过
- 五种强度分档:编码型 / 混淆型 / 重构型 / 底层型 / 虚拟机型
- 改动一个字节就拒绝执行 —— 以前客户拿到混淆过的代码改两行还能跑,现在改了就白屏,很多人到这一步就不折腾了
- 自带 WordPress 主题插件、ThinkPHP、Laravel、Discuz 等场景预设,会自动排掉 runtime、storage、vendor、模板这些加密了反而跑不起来的目录
虚拟机型单独说一下,它是五种里最狠的一档:函数体编译成自定义字节码,再用一个纯 PHP 写的虚拟机解释执行,每份产物一套指令集 —— 同一份代码加密两次,产出的东西不一样。逆向成本不是「多花点时间」,而是「得先把这套虚拟机的规矩摸清楚」。
五种怎么选?我自己是这么分的:
| 方案 | 做法 | 我会用在 |
| 编码型 | 字符码 / 二进制 / 异或密钥 | 快速过一遍,防随手翻看 |
| 混淆型 | 结构保留,可读性彻底打乱 | 开源协议下「可读不可抄」 |
| 重构型 | 控制结构等价改写 + 控制流平坦化 | 一般业务代码 |
| 底层型 | 混淆 + 压缩打包 + 加壳 | 比较值钱的模块 |
| 虚拟机型 | 自定义字节码 + 纯 PHP 虚拟机 | 核心算法、商业插件 |
五、加密完还能不能顺便收钱?
能,这是我最后决定用它最主要的原因。
站点防护里有一项网站注册授权:把授权域名 + 授权期限写进授权码,客户在站点里填一次,之后换域名就停、到期就停。
对一个卖系统的开发者来说,这一下把生意模式变了。以前一套系统卖一份,钱到账就结束了;现在同一套程序,给 A 客户绑 A 域名、给 B 客户绑 B 域名,各发各的码。买断变成按年续费,也不用为了防抄袭把源码交出去。
另外几项(防 SQL 注入、访问控制、静态加速、版权备注)勾选就自动写进去,不用改业务代码,算顺手加固。
六、有什么坑得先知道?
有几件事我必须说清楚,不然你买回去会觉得被骗:
- 没有任何加密能做到「绝对不可还原」 —— 官方文档自己就是这么写的,它提高的是阅读和还原的门槛。你要是指望加密完就永远安全,那没有这种工具
- 非 PHP 文件(HTML / CSS / JS / 图片 / 配置)是原样复制,不在加密范围
- 试用版保护能力一项不锁,五种方案、站点防护都能用,代价是产出的文件带水印,限首次运行起 30 天、累计 100 个文件
- 工具跑在 64 位 Windows 7 / 10 / 11 上,免安装、解压即用
还有一句:正式交付前一定拿自己的项目跑一遍,别信任何工具的「全兼容」,包括它。
七、适合谁?不适合谁?
适合:接单交付、卖源码 / 插件 / 主题、一套系统卖多个客户、做二次开发转包 —— 只要是「代码交出去之后还想留一手」的场景。
不适合:指望加密完就永远不被破解的;想在服务器上跑加密产物、同时又要求「能随时改源码」的 —— 它本来就是为了让你改不了。
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: