导语
你交付过PHP项目吗?
源码怎么给的?打个zip扔过去,甲方解压,裸奔。你熬了三个通宵调出来的支付回调逻辑,人家Ctrl+C,换个logo上线,跟你半毛钱关系没有。
对,就是这么赤裸。
加密不是锦上添花,是你交货的底线。
方案选错了比不选还惨。去年有个做电商的客户,上了ionCube,服务器PHP版本对不上,Loader死活装不上,项目卡了整整一周。加了密跟没加一样,代码该扒还是扒。
ionCube、SourceGuardian、代码卫士,三家我全用过。不对,应该说代码卫士是去年才认真测的,之前一直嫌它文档少没碰。三家路子不一样。ionCube要装Loader,SG也要,代码卫士号称可以不装。PHP 8.5还在beta,ionCube和SG都没跟上,我上周试了ionCube的latest loader,直接报段错误。
性能这块我拿一个5万行的老项目跑过ab压测,ionCube掉8%左右,SG差不多,代码卫士......算了,这个后面细说。顺便提一句,那台测试机是2核4G的阿里云ECS,去年双十一抢的,跑什么都慢,不过对比够用了。授权方式各走各路,有的按域名锁,有的按服务器锁。价格差的更远。
你到底该选哪个,取决于你的甲方是哪种人。是懂点技术会自己装Loader的,还是连SSH都不想碰的。这个想清楚了那就OK了!
一、PHP加密就两条路,你走哪条?
打个比方。你写了本日记,不想让人看。怎么办?
第一种,把日记全翻成你自己造的鸟语。 翻开全是乱码,没你那把特制钥匙谁也看不懂。ionCube,还有SourceGuardian,走的就是这条路,直接把PHP代码编译成字节码再加密,服务器上没装对应的Loader文件,连运行都跑不起来。
第二种,日记还是中文写的。对,字你都认识。 但我把句子打乱,把"张三"全换成"李四",再塞进去两百个无关的形容词。你一页看三个小时,看完还不知道我到底在骂谁。代码卫士就干这事,源码级混淆,文件还是那个PHP文件,变量名函数名全成了鬼画符。
哪种更安全?得看你怎么放。 你把日记锁进银行保险柜,别人连柜门都摸不到,这是字节码。你把日记扔公共书架,不对,应该说扔在小区门口的共享书架上,内容全写成天书,别人拿着翻也是白搭,这就是混淆。前天我在群里看到个老哥吐槽,说他拿混淆的代码去应聘,面试官当场看晕了......算了扯远了。你服务器权限要是捏得死,字节码最省事。要是甲方非要把代码放他们自己机器上......

1.1 字节码编译+加密
PHP源码 → 编译成字节码(opcode)→ 加密存起来 → 服务器装个Loader扩展,内存里解密执行。
编译完就不是PHP了。你拿到的是一坨非标准二进制,记事本打开是乱码,IDE打开还是乱码。想还原?你得自己写个PHP解释器,或者魔改Zend引擎------有这本事的人,时薪比你项目预算都高。
代价:服务器必须装Loader(.so或.dll)。Loader在你服务器上跑,请求来了,内存里解密,扔给Zend引擎执行。全程不落盘,不留明文临时文件。
1.2 源码级混淆变换
PHP源码 → AST解析 → 然后一顿操作。变量名换成$a1b2c3、函数名换成func_000x7f,字符串全加密,if/for/while全拆成switch分发结构,再塞一堆永远不会跑的垃圾逻辑。
最后输出什么?还是.php文件。扔到任何PHP环境里都能跑。
代价?混淆没改变"能跑"这件事。它只是让人读起来想骂人。真要逆向也成,花时间,花精力,拿AST工具一层层剥------但你要是把核心逻辑混淆得够深,攻击者剥到一半大概率就放弃了。他算算时间成本,不如自己写一个。
1.3 两条路到底差在哪
| 维度 | 字节码编译+加密 | 源码级混淆 |
|---|---|---|
| 输出格式 | 非标准二进制,打不开 | 标准PHP文件,打得开但看不懂 |
| 服务器要求 | 必须装Loader | 啥都不用 |
| 逆向难度 | 得定制PHP解释器 | AST工具能剥,但耗时耗力 |
| 部署门槛 | 高------你得有服务器权限 | 零------传上去就行 |
| 性能影响 | C层解密,几乎无感 | PHP层执行,代码膨胀 |
好了,底子讲完。ionCube和SourceGuardian走第一条路------字节码编译+加密,都要装Loader。代码卫士两条都能走:混淆模式走第二条(零依赖),SG16组件加密走第一条(装Loader)。下面一个一个拆。
二、ionCube:老牌,生态最广,但是......
你跟大部分共享主机商说"我要装个PHP扩展",他们大概率会回你一句:"ionCube Loader已经预装了,直接用。"这就是ionCube最大的家底。

2.1 加密机制
ionCube不是简单"编译+加密"就完了。它搞了好几层,每一层都在给攻击者添堵。
AES加密存储。你对着加密文件分析?分析啥,全是密文。
Dynamic Key。ionCube独家。解密密钥不在文件里,运行时动态生成。你拿到了加密文件,没有运行时生成密钥的那套逻辑,干瞪眼。而且这个生成逻辑可以无限叠自定义算法------攻击者想逆向,先把你叠了多少层Dynamic Key猜出来再说。
External Key。文件还能绑服务器上某个特定文件。缺那个文件?加密代码直接罢工。
混淆层。还能再叠一层变量名/函数名混淆。字节码加密+混淆,两道锁。
2.2 版本和兼容性
现在是2026年6月。
Encoder 15:编码支持PHP 8.2到8.4语法。Loader 15.5.0,3月12号发的,运行时支持PHP 8.5。
注意这里有坑。8.4语法编码的文件能在8.5环境跑------Loader做了向前兼容。但PHP 8.5加的那些新语法------pipe operator(|>)、array_first()/array_last()、clone with、URI扩展------你编不了。
不对,准确说:能跑,但你不能用8.5的新东西来写要加密的代码。你项目要是用了|>运算符,那部分就编不了。
ionCube官网news页说"PHP 8.5 Encoder"在路上。但到6月还没发。所以如果你现在项目已经上了8.5新语法,ionCube暂时罩不住。
有CI Edition,能接CI/CD流水线。

2.3 授权管理
Pro版给IP限制、域名限制、时间过期。Cerberus版再加MAC地址绑定。Online Licensing是官方托管的授权管理。
但注意:Machine ID硬件锁定?ionCube没有。项目级文件绑定?也没有。这些你得看SourceGuardian。
2.4 定价
| 版本 | 价格 | 谁适合 |
|---|---|---|
| Basic | £195(≈¥1800) | 个人/小项目 |
| Pro | £279(≈¥2600) | 要授权管理的商业项目 |
| Cerberus | £369(≈¥3400) | 要MAC绑定的 |
| Pro CI | $476 | CI/CD集成 |
| Cerberus CI | $549 | CI/CD集成+最高安全 |
| 在线编码 | 按量 | 偶尔加密 |
£195起。换成人民币将近两千。对一个偶尔加密的个人开发者来说,这笔钱够买三年代码卫士超级用户还有找。
2.5 好在哪、坑在哪
好:共享主机预装率最高,部署阻力最小。Dynamic Key独一份,密钥不在文件里------攻击者逆向的门槛直接拉高一个量级。
坑:编码语法只到8.4,8.5新特性编不了。授权管理阉割严重------IP限制要Pro版、MAC要Cerberus版、Machine ID压根没有。要装Loader。
好了,ionCube看完了。如果你觉得授权管理阉割这事不太舒服,下面这个SourceGuardian可能更对你胃口。
三、SourceGuardian:功能最狠,但有个致命伤
如果说ionCube是你家小区门口那种------大部分主机商都装了,方便省事。那SourceGuardian就是你得自己请锁匠上门装的防盗门------麻烦,但装好了是真结实。

3.1 加密机制
标准版跟ionCube路子差不多:编译成SG专有字节码 → 加密 → Loader内存解密执行。
但Pro版塞了个硬核东西:bytecode entangling。字节码纠缠。
怎么缠的?编译好的字节码拆成逻辑块,随机打乱,块间逻辑链接保留,然后加密重组。结果就是------攻击者用调试器跟踪执行路径,看到的是一堆随机排列又暗中相连的逻辑碎片。就像把一本书的每一页都拆下来,重新装订的时候页码全打乱,但每页之间用隐形的线连着。你想还原阅读顺序?先找到那些隐形的线再说。
这是目前PHP加密里最强的抗逆向手段。没有之一。
它还支持加密非PHP文件------模板、配置文件全可以加。ionCube做不到。
3.2 版本和兼容性
SourceGuardian 17,2026年4月13号发的。完整支持PHP 8.5编码+运行。 支持范围PHP 5.3到8.5------5.3和5.4已移除,旧项目用SG16编。Loader 17.0.0同步发,Linux、Windows、macOS、FreeBSD全有,ARM64也支持。
如果你的项目已经跑了PHP 8.5并且用了新语法,SourceGuardian 17是唯一完整方案。ionCube只能跑不能编,代码卫士干脆不支持。三条路就剩这一条。
3.3 授权管理
一个工具,全部覆盖:
IP限制、域名限制、MAC地址绑定------标准版全给。
Machine ID(硬件指纹)------SourceGuardian独家,ionCube没有。你想把代码锁死在某一台物理机上?只有它能做到。
Atomic Time Server校验------能做精确到分钟的试用版。会员过期自动停,改服务器时间绕不过去。
项目级保护------整个项目文件互相绑定。你试着拆出单个文件?跑不了。这个ionCube也没有。

3.4 定价
一次性买断,含1年支持。官方没公开具体价格。Pro版另购。
3.5 好在哪、坑在哪
好:PHP 8.5全覆盖。Machine ID硬件锁定独一份。bytecode entangling最强抗逆向。授权管理标准版就给全套,不学ionCube那套阉割玩法。
坑:共享主机预装率比ionCube低太多。装Loader你得有服务器权限,共享主机基本没戏。
最大的坑在这:你得能装Loader。 装不了Loader,SourceGuardian的bytecode entangling再强也跟你没关系。就像一个保险柜,质量再好------你家没地方放,有什么用?
这就引出下面这个。
四、代码卫士(php.x5.chat):不装Loader,也能把代码藏起来
先说一下。搜"代码卫士"你会搜到奇安信的一款SAST产品,做源码安全审计的,跟PHP加密没半毛钱关系。这里说的是php.x5.chat,一个在线PHP加密平台。别搞混了。

4.1 两种加密模式,这是它跟上面两家最大的区别
模式一:PHP混淆加密。不用装任何东西。
你的源码扔进去,平台给你一顿变换------变量名全换、字符串加密、控制流打散、垃圾代码注入、完整性校验。出来的还是.php文件。传到任何PHP服务器上直接跑,零依赖。
适合谁?共享主机、虚拟主机、客户给的服务器你没root权限、云服务器被运维锁了扩展安装权限。你只有FTP?没问题,传上去就能跑。
模式二:SG16组件加密(含SG16PRO)
走SourceGuardian的技术路线。编译成字节码加加密,运行时得装Loader。SG16PRO对标SourceGuardian Pro的增强保护。
适合谁?自有服务器,Loader随便装,追求最高加密强度。
一句话:同一个平台,你需要零依赖就选混淆模式,能装Loader就选SG16PRO。不用在两个产品之间跳来跳去。
4.2 版本和兼容性
支持PHP 5.5到8.4。PHP 8.5不支持。
如果你的项目跑了8.5,这一条就直接pass了。
4.3 性能数据
厂商自己公布的,未经第三方验证:
| 指标 | 加密前 | 加密后 | 浮动 |
|---|---|---|---|
| QPS | 2500 | 2460 | 掉1.6% |
| 平均响应时间 | 45ms | 46ms | 多2.2% |
| CPU使用率 | 65% | 66% | 多1.5% |
说白了,你项目本来一秒跑2500次请求,加密后大概2460次。基本无感。但这是厂商数据,你自己项目跑一遍才有数。
4.4 定价------这跟上面两家完全不是一套逻辑
ionCube和SourceGuardian是先交钱再加密。代码卫士是先加密再给钱,而且给多少看你加密了多少文件、选了哪个等级。
分两层。
加密版本,加密时选。基础版:基础加密强度。Pro版:更高强度,可选SG16PRO。选哪个跟价格没关系,只看你要多强的加密。
用户等级,决定每次加密花多少钱:
| 等级 | 价格 | 折扣 |
|---|---|---|
| 普通用户 | ¥0 | 原价 |
| 高级用户 | ¥9.99 | 9折,省10% |
| 至尊用户 | ¥99 | 7折,省30% |
| 资深用户 | ¥199 | 5折,省50% |
| 超级用户 | ¥399 | 终身无限免费 |
升级不会自动升,得手动点。普通 → 高级(¥9.99)→ 至尊(¥99)→ 资深(¥199)→ 超级(¥399)。到了超级用户,¥399付一次,后面全部免费。

平台有多个加密工具,每个版本加密一个文件价格不一样。但不超1元。还有免费版本。
你算算:ionCube Basic £195,换成人民币差不多1800。代码卫士超级用户¥399。一个买断起价就是另一个终身价的4.5倍。而且代码卫士普通用户还能先免费试用,ionCube你得先掏钱。
4.5 好在哪、坑在哪
好:混淆加密模式不用装Loader------ionCube和SourceGuardian都做不到。在线操作,不用装客户端。加密一个文件不超1元,有免费版,¥399终身封顶。基础版和Pro版随便选。授权管理全给,不搞版本阉割------IP、域名、MAC、Machine ID、时间过期、在线授权、项目级绑定,全部支持。
坑:不支持PHP 8.5。混淆加密逆向门槛比字节码编译低------毕竟输出还是PHP,不是二进制。在线平台意味着你得把源码传上去------你信不信这个平台,自己掂量。
好了,三家都看完了。下面放一起比。
为什么比这五个维度?服务器能不能装Loader决定了你还有没有选择。PHP版本决定了你能不能用。加密强度决定了值不值。授权管理决定了项目怎么卖。价格决定了买不买得起。漏掉任何一个,都可能选错。

五、核心维度,怼脸对比
5.1 服务器要求------这是第一道门槛
你服务器能不能装扩展?不能?那后面四张表你都不用看了。
| 方案 | 装Loader? | 共享主机? | 部署难度 |
|---|---|---|---|
| ionCube | 必须 | 能(预装率最高) | 低到中 |
| SourceGuardian | 必须 | 基本没戏 | 中到高 |
| 代码卫士混淆加密 | 不用 | 直接用 | 零 |
| 代码卫士SG16 | 必须 | 基本没戏 | 中到高 |
共享主机、虚拟主机、客户给你FTP账号就完事的那种------ionCube和SourceGuardian直接出局。你连ssh都没有,装什么Loader?代码卫士混淆加密是唯一能用的。
自有服务器,能装Loader?那接着往下看。
5.2 PHP版本------你的PHP跑哪个?
| PHP版本 | ionCube | SourceGuardian | 代码卫士 |
|---|---|---|---|
| 7.x | 编+跑 | 编+跑 | 编+跑 |
| 8.2-8.4 | 编+跑 | 编+跑 | 编+跑 |
| 8.5 | 能跑(编不了新语法) | 编+跑,全支持 | 不支持 |
PHP 8.5了?三条路:SourceGuardian 17全部支持;ionCube能跑但8.5新语法编不了------你项目用了|>或者array_first()的话,那些文件只能不加密或者换写法;代码卫士直接不支持。
选之前,先跑php -v看清楚你的版本。
5.3 加密强度:够不够挡住想偷你代码的人?
| 方案 | 技术路线 | 逆向难度 | 一句话 |
|---|---|---|---|
| ionCube Pro/Cerberus | 字节码编译+多层AES+Dynamic Key | 高 | 密钥藏在运行时内存,磁盘里翻不到 |
| SourceGuardian Pro | 字节码编译+bytecode entangling | 最高 | 字节码打散重组,调试器往里一看全是随机碎片 |
| 代码卫士SG16PRO | 字节码编译+加密 | 高 | 跟ionCube走的同一条路 |
| 代码卫士混淆加密 | AST多层混淆变换 | 中 | AST工具能剥,费时间但剥得掉 |
谁跟你说PHP加密"绝对安全"的?
鬼扯。
ionCube 2018年就被俄罗斯一个逆向论坛公开脱过壳,SourceGuardian更早,2015年脱壳脚本就被人写出来放网上了。不对,应该说不是"放网上"那么随意,是有人发在板块里,版主当天就删了帖,但镜像早被转存了十几份,删不干净。
加密从来不是让你永远破不了。
怎么说呢,跟你家装锁一个道理。真碰上扛液压钳来的,什么锁都白搭。但B级锁往门上一装,小偷扫一眼,隔壁没锁,他转头就走了。加密就这意思,不是破不了,是破你代码花的钱比重新写一套还多。
他算算账,脱壳三周人力,重写只要两周。
算了,去搞隔壁那个没加密的。
5.4 授权管理------代码卖出去了,怎么管?
| 功能 | ionCube | SourceGuardian | 代码卫士 |
|---|---|---|---|
| IP限制 | Pro版才有 | 标准版 | 支持 |
| 域名限制 | Pro版才有 | 标准版 | 支持 |
| MAC地址 | Cerberus版才有 | 标准版 | 支持 |
| Machine ID | 没有 | 标准版 | 支持 |
| 时间过期 | Pro版才有 | 标准版 | 支持 |
| 在线授权管理 | Online Licensing | Pro版动态授权 | 支持 |
| 项目级绑定 | 没有 | 标准版 | 支持 |
ionCube的玩法是什么?你要IP限制?加钱上Pro。你要MAC绑定?再加钱上Cerberus。你要Machine ID?对不起,没有。
SourceGuardian标准版全给。代码卫士也全给。不搞版本阉割这套。
你的项目需要Machine ID硬件锁定吗?需要的话,ionCube直接pass。
5.5 钱------前面都过了,这关过不去也白搭
| 方案 | 收费模式 | 最低门槛 | 封顶 |
|---|---|---|---|
| ionCube Basic | 买断 | £195(≈¥1800) | 大版本升级另掏 |
| SourceGuardian | 买断 | 一次性买断 | 大版本升级另掏 |
| 代码卫士 | 按文件个数 | 单文件不超¥1,有免费版 | ¥399终身 |
一年加密两次的个人开发者,花¥1800买ionCube Basic还是花¥9.99升个代码卫士高级用户打9折?答案自己算。
长期高频加密的专业户?¥399超级用户终身免费,跟ionCube大版本升级每次另掏钱------五年下来差多少,就不用我帮你算了。
上面五个维度在实际项目里经常互相打架:能装Loader的服务器一般性能不差但预算也宽裕,不能装Loader的共享主机往往预算紧但项目本身也不大。下面几个常见场景,你对着自己的情况看。
六、对号入座:你属于哪种?
共享主机、虚拟主机,装不了扩展。
→ 代码卫士混淆加密。不用装Loader。这事儿没得商量,ionCube和SourceGuardian你能用吗?不能。
自有服务器,要强授权+最高强度。
→ 两条路。SourceGuardian Pro走的是bytecode entangling+Machine ID硬件锁定+PHP 8.5全覆盖。代码卫士Pro版SG16PRO走的是字节码加密+全套授权+便宜,而且同一个平台还能切成零依赖模式加密别的模块。看你更在意8.5还是更在意成本。
自有服务器,Dynamic Key多层加密是你的刚需。
→ ionCube Cerberus,Dynamic Key+MAC绑定。这个能力是ionCube独家的。
项目已经跑了PHP 8.5,而且用了新语法。
→ SourceGuardian 17。没得选。ionCube编不了8.5新语法,代码卫士干脆不支持8.5。
预算紧,加密频次不高。
→ 代码卫士。单文件不超1元,有免费版本。先试,好用了再考虑升级等级拿折扣。
核心模块要最高强度,普通模块零依赖就行。
→ 代码卫士一个平台搞定。Pro版SG16PRO加密核心模块,基础版混淆加密普通模块。没必要买两个产品。

七、踩过的坑,听完省你一个下午
选对方案只是开始。部署的时候翻车,比选错方案还痛苦。
Loader装不上
CentOS和Ubuntu的PHP扩展路径不一样,手动装八成翻。宝塔面板能一键装。其他环境先跑php -i | grep extension_dir看清楚路径。ionCube有个loader-wizard.php向导脚本,帮你自动检测环境------这个比SourceGuardian贴心。
我有个朋友去年接了个外包项目,甲方给的共享主机连ssh都没开。Loader?想都别想。他当时问我有没有不用装扩展的方案------那会儿还真没有。这个项目他最后没接。现在有了,但他那单已经跑了。
上个月一个客户,CentOS 7.9,PHP 8.2,扩展路径在/usr/local/php82/lib/php/extensions/no-debug-non-zts-20220829/。宝塔默认路径差了十万八千里。手动找路径折腾了一下午。
加密完没法调试
报错堆栈也加密了。线上出了问题,你看日志:全是乱码。根本不知道哪行崩了。
一定留一份没加密的源文件做开发调试。只加密交付那份。 这个不是什么高级技巧,但不做的话,上线第一周你就懂了。
PHP版本升级是定时炸弹
ionCube 8.4编码的文件8.5能跑但新语法编不了。SourceGuardian 17 8.5全支持。代码卫士8.5直接不支持。
你服务器运维说"咱们升个PHP 8.5吧,性能好"------你加密过的项目怎么办?升之前把加密文件扔上去跑一遍。别等线上崩了才发现。
别全量加密
你要是把vendor目录都加密了,别说性能,排查问题都排查不了。只加密核心业务逻辑和敏感配置。公共库、框架文件别加。省性能,也省命。
代码卫士是在线平台
你的源码得传上去处理。信不信这个平台,自己判断。ionCube和SourceGuardian是本地软件,源码不出你电脑。

八、总结
能装扩展,走字节码编译。不能装,走混淆加密。
- ionCube:生态最广,Dynamic Key独一家,共享主机首选------但你得接受授权管理版本阉割。
- SourceGuardian:PHP 8.5全覆盖,bytecode entangling最强抗逆向,Machine ID硬件锁定------前提是你能装Loader。
- 代码卫士:不用装Loader也能加密,授权管理全给不阉割,单文件不超1元有免费版,¥399封顶,双模式随便切------但8.5不支持,源码得传上去。
说白了,你什么场景,就用什么方案。
别光看厂商数据。
拿自己项目跑一遍。
原创文章,转载请注明出处。
如果这篇文章对你有帮助,欢迎点赞、收藏、分享。