韶关新月网络设计工作室

韶关网站制作技术专线:0751-8885730 13580109116(网站设计)

PHP base64+gzinflate压缩编码和解压

base64+gzinflate压缩(加密)过的文件通常是以<? eval(gzinflate(base64_decode(’ 为头的一个php文件。

我们关心的的是怎么压缩和解压缩。

两个程序分别实现:

第一个压缩编码(加密):

<?php
function encode_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 草名 http://www.crazyi.cn 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 草名 http://www.crazyi.cn Cryptation*/\n eval(gzinflate(base64_decode(".$encode.")));\n /*Reverse    engineering is illegal and strictly prohibited- (C)草名 Cryptation 2008*/ \n?>";
        
return file_put_contents($filename,$encode);
        
}   
    
}
    
return false;
}
//调用函数
$filename='g:\我的文档\桌面\test.php';
encode_file_contents($filename);
?>

第二个解压编码(解密):

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

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

 
网站分类