php源码程序加密方法

文章介绍了两个给php程序自身加密的方法,我们常的方法base64_encode(gzdeflate($contents))这样来加密了,第二种方法不多见有需要的朋友也可以参考一下.

实例1,代码如下:

  1. <?php
  2. function encode_file_contents($filename) {
  3. $type=strtolower(substr(strrchr($filename,'.'),1));
  4. if('php'==$type && is_file($filename) && is_writable($filename)){// 如果是PHP文件 并且可写 则进行压缩编码
  5. $contents = file_get_contents($filename);// 判断文件是否已经被编码处理
  6. $contents = php_strip_whitespace($filename);
  7. // 去除PHP头部和尾部标识
  8. $headerPos = strpos($contents,'<?php');
  9. $footerPos = strrpos($contents,'?>');
  10. $contents = substr($contents,$headerPos+5,$footerPos-$headerPos);
  11. $encode = base64_encode(gzdeflate($contents));// 开始编码
  12. $encode = '<?php'."n eval(gzinflate(base64_decode("."'".$encode."'".")));nn?>";
  13. return file_put_contents($filename,$encode);
  14. //开源代码phpfensi.com
  15. }
  16. return false;
  17. }
  18. //调用函数
  19. $filename='dam.php';
  20. encode_file_contents($filename);
  21. echo "OK,加密完成!"
  22. ?>

实例2,代码如下:

  1. <?php
  2. function RandAbc($length=""){//返回随机字符串
  3. $str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  4. return str_shuffle($str);
  5. }
  6. $filename='dam.php';
  7. $T_k1=RandAbc();//随机密匙1
  8. $T_k2=RandAbc();//随机密匙2
  9. $vstr=file_get_contents($filename);//要加密的文件
  10. $v1=base64_encode($vstr);
  11. $c=strtr($v1,$T_k1,$T_k2);//根据密匙替换对应字符。
  12. $c=$T_k1.$T_k2.$c;
  13. $q1="O00O0O";
  14. $q2="O0O000";
  15. $q3="O0OO00";
  16. $q4="OO0O00";
  17. $q5="OO0000";
  18. $q6="O00OO0";
  19. $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.'))));').'"));';
  20. $s='<?php
  21. '.$s.
  22. '
  23. ?>';
  24. echo "OK,加密完成!";
  25. //生成 加密后的PHP文件
  26. $fpp1 = fopen('dam.php','w');
  27. fwrite($fpp1,$s) or die('写文件错误');
  28. ?>