设为首页 收藏本站
查看: 569|回复: 0

[经验分享] PHP源码加密

[复制链接]

尚未签到

发表于 2017-3-4 08:50:57 | 显示全部楼层 |阅读模式
  1. urlencode/urldecode方式

<?php
function RandAbc($length=""){//返回随机字符串
$str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
return str_shuffle($str);
}
$filename='foo.php';
$T_k1=RandAbc();//随机密匙1
$T_k2=RandAbc();//随机密匙2
$vstr=file_get_contents($filename);//要加密的文件
$v1=base64_encode($vstr);
$c=strtr($v1,$T_k1,$T_k2);//根据密匙替换对应字符。
$c=$T_k1.$T_k2.$c;
$q1="O00O0O";
$q2="O0O000";
$q3="O0OO00";
$q4="OO0O00";
$q5="OO0000";
$q6="O00OO0";
$s='$'.$q6.'=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$'.$q1.'=$'.$q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'.$q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6.'{24};$'.$q5.'=$'.$q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.$q6.'{32}.$'.$q6.'{35}.$'.$q6.'{26}.$'.$q6.'{30};eval($'.$q1.'("'.base64_encode('$'.$q2.'="'.$c.'";eval(\'?>\'.$'.$q1.'($'.$q3.'($'.$q4.'($'.$q2.',$'.$q5.'*2),$'.$q4.'($'.$q2.',$'.$q5.',$'.$q5.'),$'.$q4.'($'.$q2.',0,$'.$q5.'))));').'"));';
$s='<?php
'.$s.'
?>';
echo $s;
//生成 加密后的PHP文件
$fpp1 = fopen('temp'.$filename,'w');
fwrite($fpp1,$s) or die('写文件错误');

  新建encrypt.php文件,将以上代码复制进该文件,$filename是要加密的php文件
  
  原foo.php

<?php
echo phpinfo();
  加密之后tempfoo.php

<?php
$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};eval($O00O0O("JE8wTzAwMD0iQlpQQWZ2bWppVVh4Y05rclFUeldKb3REZXVHYnlNU3FzaENwZEZnSUtSVkhZbkxFYXdsT3Z1TUVOcGZCREpoT3pzYWVWcmlIUWJLQ2xBR1RJUldVdFp5ZGdGUHdvbmN4bWtqTFlxWFNNQzlxWXhFc3lQMG91SHNiVEl2cVl4dmRUZnVwb3lhNyI7ZXZhbCgnPz4nLiRPMDBPME8oJE8wT08wMCgkT08wTzAwKCRPME8wMDAsJE9PMDAwMCoyKSwkT08wTzAwKCRPME8wMDAsJE9PMDAwMCwkT08wMDAwKSwkT08wTzAwKCRPME8wMDAsMCwkT08wMDAwKSkpKTs="));
?>
  2. php_screw方式
  下载:http://pan.baidu.com/share/link?shareid=180128&uk=704879932
  安装
  1.用tar解压缩 tar -zxvf php_screw-1.5.tar.gz
  2.进入php_screw-1.5目录开始安装
  cd php_screw-1.5
  phpize
  关于phpize ,它在php5-dev扩展模块中 只要安装php5-dev模块就行了。
  ./confiugre
  3.设置自己用来加密的密码
  vi my_screw.h
  -- Please change the encryption SEED key (pm9screw_mycryptkey) into the
  values according to what you like.
  The encryption will be harder to break, if you add more values to the
  encryption SEED array. However, the size of the SEED is unrelated to
  the time of the decrypt processing.
  *  If you can read and understand the source code, to modify an original
  encryption logic will be possible. But in general, this should not
  be necessary.
  OPTIONAL: Encrypted scripts get a stamp added to the beginning of the
  file. If you like, you may change this stamp defined by
  PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must
  be less than or equal to the size of PM9SCREW.
  4.编译
  make
  5.拷贝modules目录下的php_screw.so文件到/usr/lib/php5/extension目录下
  cp modules/php_screw.so /usr/lib/php5/extension/
  6.编辑php.ini文件
  在php.ini文件里,加入如下语句
  extension=php_screw.so
  7.重新启动Apache
  /etc/init.d/apache2 restart
  8.编译加密工具
  cd tools
  make
  9.将tools目录下加密用的工具screw拷贝到适当目录
  cp screw /usr/bin/
  经过以上的10步,就已经把php_screw-1.5全部安装完成了。并且现在的php也已经支持解释加密过的php文件了
  使用
  1.现写一个要加密的php文件。
  我写了如下的一个用来测试php速度的test.php文件

<?
$a=0;
$t=time();
for($i=0;$i<5000000;$i++){$a=$a*$i;}
$t1=time();
echo "<p>";
echo "It used:";
echo $t1-$t;
echo "seconds";
?>
  将上面的test.php文件放到/var/www/目录下。通过浏览器访问,将显示出php在大量计算时的速度(粗略估计)
  2.将我们写的php文件加密
  cd /var/www/
  screw test.php
  我们加密后,现在目录下的test.php文件就是我们已经加密的了。而源文件被改名为test.php.screw存放了。
  我们现在再测试一下test.php,看看能否正常使用?速度如何?
  我比较了一下,加密前后的速度大概一样,基本没有太多的损失。
  3批处理加密文件
  在debian, apache2, php5上测试过对.html文件加密后,能正确解析;
  php_screw如何对当前目录下,对目录下包含的文件,以及包含目录下的文件进行整体加密
  find ./ -name "*.php" -print|xargs -n1 screw //加密所有的.php文件
  find ./ -name "*.screw" -print/xargs -n1 rm //删除所有的.php源文件的备份文件
  这样在当前目录下的所有.php文件就全部背加密了
  参考文章:
  http://blog.csdn.net/luochuan/article/details/8474044
  http://blog.csdn.net/zqlee1216/article/details/4371477
  http://www.cnblogs.com/keheng/articles/2496970.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-349983-1-1.html 上篇帖子: PHP入门一 下篇帖子: php parse_str
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表