实际应用:
<?php
$Code = 'bZA7b8MwDIR3/wpCQ9MudtCpaPxYOmTo1gIZC
$File = 'decoded.php';//解码后保存的文件
$Temp = base64_decode($Code);
$temp = gzinflate($Temp);
$FP = fopen($File,"w");
fwrite($FP,$temp);
fclose($FP);
echo "解密成功!";
?>
解密成功后的代码如:
<div>
<div>
<br /><br />
© 2009 <?php bloginfo('name'); ?>
<br />
theme design by <a href="znzhttp://www.amznz.com">ZNZ</a>
</div></div>
然后把这个decoded.php修改为footer.php替换原文件,就可以了。
PHP base64_decode+gzinflate压缩编码和解码代码
PHP目前在网络中被用的越来越多,加密解密的话题也一直没有停息过。下面简单介绍一下base64_decode+gzinflate压缩编码和解码代码方法,就是通常我们在程序中见的eval_r(gzinflate(base64_decode('加密代码'))); 形式的加密方法。
网山有此类方法,但是由于局部缺少了某些字符,导致了加密后无法使用的情况,大家有兴趣可以去试试看,本人在原基础上做了简单修改,经本人测试无错。
注意:解密时请不要用汉语及带空格的名字做文件名
压缩编码(加密)代码:
<?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,'powered by arzn QQ:1314778');
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'."n eval_r(gzinflate(base64_decode("."'".$encode."'".")));nn?>";
return file_put_contents($filename,$encode);
}
}
return false;
}
//调用函数
$filename='code.php';
encode_file_contents($filename);
echo "OK,加密完成!"
?>
压缩解码(解密)代码:
<?php
$Code = '这里填写要解密的编码'; // base64编码
$File = 'decoded.php';//解码后保存的文件
$Temp = base64_decode($Code);
$temp = gzinflate($Temp);
$FP = fopen($File,"w");
fwrite($FP,$temp);
fclose($FP);
echo "解密成功!";
?>
另一种
现在很多程序作者为了保护自身利益越来越喜欢把代码进行各种各样的加密处理,(例如:<?php eval_r(gzinflate(base64_decode(’encoded text’))); ?>),但是这样做的一个缺点就是,当你希望修改其中一部分代码时就无法进行,对于追求完美的朋友来说这样做是不能容忍的,怎样才能让这些被搞乱的代码还原呢?看了本文相信你能找到一个合理的方法:
其实很简单,把你的程序修改如下,你单独保存在一个PHP文件里面,执行一下,看看输出的内容你就明白了(IE中查看源代码):
例如:原文件为
<?php
eval_r(gzinflate(base64_decode('加密部分')));
?>
则只需用下面的替换:
<?php
echo (gzinflate(base64_decode('加密部分')));
?>

下一篇:phpmailer的用法