加密方法:
1 <?php 2 header('Content-Type:text/html;charset=utf-8'); 3 function encode_file_contents($filename) { 4 $type=strtolower(substr(strrchr($filename,'.'),1)); 5 if('php'==$type && is_file($filename) && is_writable($filename)){// 如果是PHP文件 並且可寫 則進行壓縮編碼 6 $contents = file_get_contents($filename);// 判斷文件是否已經被編碼處理 7 $pos = strpos($contents,'powered by arzn QQ:1314778'); 8 if(false === $pos || $pos>100){ // 去除PHP文件注釋和空白,減少文件大小 9 $contents = php_strip_whitespace($filename); 10 // 去除PHP頭部和尾部標識 11 $headerPos = strpos($contents,'<?php'); 12 $footerPos = strrpos($contents,'?>'); 13 $contents = substr($contents,$headerPos+5,$footerPos-$headerPos); 14 $encode = base64_encode(gzdeflate($contents));// 開始編碼 15 $encode = '<?php'."\n eval(gzinflate(base64_decode("."'".$encode."'".")));\n\n?>"; 16 return file_put_contents($filename,$encode); 17 } 18 } 19 return false; 20 } 21 //調用函數 22 $filename='1.php'; 23 encode_file_contents($filename); 24 echo "OK,加密完成!" 25 ?>
解密方法:
1 <?php 2 $Code = '這里填寫要解密的編碼'; // base64編碼 3 $File = 'decoded.php';//解碼后保存的文件 4 $Temp = base64_decode($Code); 5 $temp = gzinflate($Temp); 6 $FP = fopen($File,"w"); 7 fwrite($FP,$temp); 8 fclose($FP); 9 echo "解密成功!"; 10 ?>