【转】php加密方法的对比

作者:enenba | 发表于:2015-04-15 11:17 | 分类:php源码

最近总有网友加我的QQ来向我了解一些PHP的加密,在这里就大家常常搞不懂的PHP加密方法进行罗列并进行简要的介绍。

1、源码外壳加密(通常加混淆加密,各种加密盾均是此类加密)

优点:简单,加密容易,现在主流的免扩展加密均是此类方法,本网站也有采用了此类加密方法,加密后无需作什么特别设置直接可使用。

缺点:加密强度高,执行速度慢。加密强度低,安全性低。我见过某人加密进行了200次循环验证,这样性能很低的。所有的源码混淆加密均可被还原成原代码。

2、源代码混淆(只打算代码不加密)

优点:与方案一不同的在于此加密方法是对源代进行加工,加密PHP变量、加密PHP函数、加密PHP字符等,这样加密完的源代码可以正确执行,降低可读性,要拿到源代码的人,也无从下手。

缺点:源码加密后,不方便修改,严格他并没有加密,只是增加代码不易读的方式,来防止修改二次开发代码。

3、扩展加密(zend为代表)

优点:将PHP程序经过某种算法如DES、异或、压缩等算法加密或者对源代码进行预编译提高速度。在PHP加载的扩展(DLL 或 SO) 中完成对源代码的解密解释执行。速度快,安全性高。如果没有破解扩展很难破解此类代码。

缺点:此类加密,容易被HOOK通过获取OPCODE 转换破解代码,现在主流的ZEND被破解均是因为此类问题。兼容性不好,需要安装第三方扩展方可使用。在安全性方面,远高于方案一

4、编译功能性扩展

有 点:看着与方案三有一些像但完全不同,他的执行功能是通过C语言编译于扩展中,然后在PHP中调用这样的扩展函数如xxSHOP就使用此类验证加密。因为 他不属于功能解释执行PHP代码,所有功能通过C语言直接写出来,应用到PHP扩展中,理论上不能被破解得到源代码(ASM TO C代码重写除外)。

缺点:扩展兼容性最差,功能升级时需要更新此类扩展文件。牺牲兼容性,而得到安全性。

 

写在最后,PHP的加密安全性一直是相对的。对于上面的加密四种方案是最常见的,也可以多次组合应用。如先用方案二混淆,再用方案一、方案三、加密。

转自 http://www.phpjiami.com/

上一篇: php源码加密 在线加密工具   |   下一篇:【转】PHP免扩展加密(混淆加密)的基本原理(三)安全加密» 标签: PHP加密

评论: