PHP base64+gzinflate压缩编码和解码代码

2018-09-07 22:20

阅读:458

  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 草名
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 草名 草名 Cryptation 2008*/ \n?>;
return file_put_contents($filename,$encode);
}
}
return false;
}
//调用函数
$filename=g:\我的文档\桌面\test.php;
encode_file_contents($filename);
?>
<?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 草名
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 草名 草名 Cryptation 2008*/ \n?>;
return file_put_contents($filename,$encode);
}
}
return false;
}
//调用函数
$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 解密成功!;
?>


评论


亲,登录后才可以留言!