RSS Feed

Posts Tagged ‘加密’

  1. PHP base64_decode+gzinflate压缩编码和解码代码

    December 17, 2008 by nonozone

    刚换了一个主题,却发现页脚footer.php被加密了,里面只有下面这样一段代码:

    <? eval(gzinflate(base64_decode('
    bZC9bsMwDITnFOg7XD21g+PdVWSgS7t1CZCxkCLa
    EixLqqTECNCHrxX3ZwkXHu7IDyA7zh7qGpIG49B7
    nymirvn93WbDGmXOq+qCDhgofySjSIr4+PSMrkR/
    M0UvEkbtqhVTFRtggUNRMoMjBXlpwQR0pH5X6ZxD
    2zTzPG8nMdLnyRzH7dFPFX931jjCgWQymfByMlZR
    ZI3gEE7dRswktU/ZuGEgGtMKWgh4W12U9dcS4Qvi
    LIwV0hL6SASRW+x9uIXNPswha5roB4mDjypESgn7
    q124rAnLtVjq9yH/XXp1uQqdJ8tZ9w0=
    '))); ?>

    这让我咋整,我想添加一段统计代码都不知道加到哪里好,其实我也明白作者的意思,主要是不想有些人随便修改自己的版权和作者信息而已。可是我想加入自己的一些东西就比较麻烦了。怎么办?Google之。

    在网上看到这样一篇文章PHP base64_decode+gzinflate压缩编码和解码代码,详细介绍了PHP base64_decode+gzinflate加密和解密的方法。

    注意:解密时请不要用汉语及带空格的名字做文件名。

    加密代码:

    <?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(gzinflate(base64_decode("."'".$encode."'".")));\n\n?>";
    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的筒子们!下面讲讲我这样一个没有PHP知识的人,解密那段代码的详细过程!

    首先,打开你的文本编辑器,比如记事本,我用的是Notepad++,新建一个文本文件,按照那个解密代码,把我的那个footer.php文件里的密码输入进去,然后就类似下面:

    <?php
    $Code = 'bZC9bsMwDITnFOg7XD21g+PdVWSgS7t1CZCxkCLa
    EixLqqTECNCHrxX3ZwkXHu7IDyA7zh7qGpIG49B7
    nymirvn93WbDGmXOq+qCDhgofySjSIr4+PSMrkR/
    M0UvEkbtqhVTFRtggUNRMoMjBXlpwQR0pH5X6ZxD
    2zTzPG8nMdLnyRzH7dFPFX931jjCgWQymfByMlZR
    ZI3gEE7dRswktU/ZuGEgGtMKWgh4W12U9dcS4Qvi
    LIwV0hL6SASRW+x9uIXNPswha5roB4mDjypESgn7
    q124rAnLtVjq9yH/XXp1uQqdJ8tZ9w0=
    '; // base64编码
    $File = 'decoded.php';//解码后保存的文件
    $Temp = base64_decode($Code);
    $temp = gzinflate($Temp);
    $FP = fopen($File,"w");
    fwrite($FP,$temp);
    fclose($FP);
    echo "解密成功!";
    ?>

    那段红色的部分,就是我footer.php文件里面本身的加密的代码。然后把这个文件保存,随便起个名字,但是一定要是PHP格式,我的是test.php。注意:上面那个decoded.php就是解密完成后的文件名,这个你也可以修改。

    然后,把这个test.php文件上传到你空间的根目录,其实其他目录也可以,但是需要能够web访问。我就直接放在博客的根目录了。

    然后通过web访问,我的是http://www.nonozone.net/test.php。本来应该提示“解密成功”的,但是我没有看到,但是在服务器已经看到多了一个decoded.php文件了,打开一看,呵呵已经解密啦!!!解密后的文件是这样的!

            </div>
            <?php get_sidebar(); ?>
        </div>
        <div id="footer">
          <p> designed by: <a href="http://www.makequick.com">Online Website Builder</a> and: <a href="http://www.webhostinggeeks.com">Web Hosting </a>Geeks | available free at: Top<a href="http://www.topwpthemes.com"> WordPress Themes</a></p>
        </div>
    </div>
    </body>
    </html>

    怎么样,这样看就比较正常了。然后把这个decoded.php修改为footer.php替代原本的文件,就OK了!

    好啦,就这样了。写这个文章真累!