PHP 加密:关于 ENPHP 加密之注释加密说明
最近 ENPHP 上线了两种注释加密,
这也是我个人在代码加密混淆的实际应用场景里最常用的两种方法:
1、隐藏代码
示例:
/*<hide>*/
echo 1;
/*</hide>*/
能在加密混淆前,去掉
echo 1;
这样,中间有部分逻辑就会去除。
语法说明:
/*<hide>*/
需要隐藏的代码
/*</hide>*/
/*<hide>*/和/*</hide>*/字符串固定,<和>之间不能有任何空格,hide只能小写
应用场景?我举个例子:
- 你需要加密一部分代码给第三方,但是中间有些核心方法他们用不到。
- 你的商业代码,但是在打包时,你只想隐藏一部分功能给用户。
2、字符串+数字加密
示例:
$a = /*<encode>*/"明文数据1"/*</encode>*/;
echo /*<encode>*/2/*</encode>*/;
print(/*<encode>*/"明文数据3"/*</encode>*/);
加强字符串混淆强度,即使反编译后仍无法找到原字符串,使 hacker 们反编译后依旧无法正常阅读。
语法:
/*<encode>*/'字符串'/*</encode>*/
/*<encode>*/"字符串"/*</encode>*/
/*<encode>*/123/*</encode>*/
仅支持字符串变量和数字,如果中间是其它格式将不会转换。同理,encode 前后<和>都不能有空格
应用场景:
- 假如你做的是一个商业软件,要限制域名。对域名加密判断过程可以这样写(仅供参考):
$domain = /*<encode>*/'djunny.com'/*</encode>*/;
$message = /*<encode>*/'Plz Register'/*</encode>*/;
if(strpos($_SERVER['HTTP_HOST'], $domain) !== false){
exit($message);
}
当然,还有一个更加优化版本:
$a = 'd';
$b = 'j';
$k = '*';
$domain = str_replace($k, '', $a.$k.$b.$k)./*<encode>*/'unny.com'/*</encode>*/;
$message = /*<encode>*/'Plz Register'/*</encode>*/;
if(strpos($_SERVER['HTTP_HOST'], $domain) !== false){
exit($message);
}
随意发挥~
好了,先说到这,有什么问题可以留言给我。
php版本 必须 大于等于 5.4吗?
我本地测试的版本是5.2应该PHP5以上都可以。
感谢作者提供这么好的开源项目