PHP base64+gzinflate压缩编码和解压

base64+gzinflate压缩(加密)过的文件通常是以<? eval( gzinflate(base64_decode(’ 为头的一个 php文件。
我们关心的的是怎么压缩和解压缩。
两个程序分别实现:
第一个压缩编码(加密):
<?php
functionencode_file_contents($filename){
        $type=strtolower(substr(strrchr($filename,'.'),1));
        if('php'==$type&&is_file($filename)&&is_writable($filename)){// 如果是PHP文件        并且可写则进行压缩编码
                $contents=file_get_contents($filename);// 判断文件是否已经被编码处理
                $pos=strpos($contents,'/*Protected by 草名 [url]http://www.crazyi.cn[/url] Cryptation*/');
                if(false===$pos||$pos>100){// 去除PHP文件注释和空白,减少文件大小
                $contents=php_strip_whitespace($filename);
                // 去除PHP头部和尾部标识
                $headerPos=strpos($contents,'<?php');
                $footerPos=strrpos($contents,'?>');
                $contents=substr($contents,$headerPos+5,$footerPos-$headerPos);
                $encode=base64_encode(gzdeflate($contents));// 开始编码
                $encode='<?php'."/*Protected by 草名 [url]http://www.crazyi.cn[/url] Cryptation*/\neval(gzinflate(base64_decode(".$encode.")));\n/*Reverse        engineering is illegal and strictly prohibited- (C)草名 Cryptation 2008*/\n?>";
                returnfile_put_contents($filename,$encode);
                }    
        }
        returnfalse;
}
//调用函数
$filename='g:\我的文档\桌面\test.php';
encode_file_contents($filename);
?>

第二个解压编码(解密):
<?php
$Code='这里填写要解密的编码';// base64编码
$File='test.php';//解码后保存的文件
$Temp=base64_decode($Code);
$temp=gzinflate($Temp);
$FP=fopen($File,"w");
fwrite($FP,$temp);
fclose($FP);
echo"解密成功!";
?>


你可能感兴趣的:(PHP,base64,休闲,gzinflate,压缩编码)