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


Posted in PHP onOctober 03, 2008

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); 
?> 
<?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); 
?>

压缩解码(解密)代码:

<?php 
$Code = '这里填写要解密的编码'; // base64编码 
$File = 'test.php';//解码后保存的文件 
$Temp = base64_decode($Code); 
$temp = gzinflate($Temp); 
$FP = fopen($File,"w"); 
fwrite($FP,$temp); 
fclose($FP); 
echo "解密成功!"; 
?>
PHP 相关文章推荐
php循环输出数据库内容的代码
May 24 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
Nov 20 PHP
thinkPHP中_initialize方法实例分析
Dec 05 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 PHP
php服务器的系统详解
Oct 12 PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 06 PHP
PHP实现文件上传与下载
Aug 28 PHP
PHPstorm启用自动换行的方法详解(IDE)
Sep 17 PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 #PHP
PHP Header用于页面跳转要注意的几个问题总结
Oct 03 #PHP
smarty section简介与用法分析
Oct 03 #PHP
php相当简单的分页类
Oct 02 #PHP
php仿discuz分页效果代码
Oct 02 #PHP
php仿ZOL分页类代码
Oct 02 #PHP
php生成缩略图的类代码
Oct 02 #PHP
You might like
在PHP中使用灵巧的体系结构
2006/10/09 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
php获取目标函数执行时间示例
2014/03/04 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
jquery 根据name名获取元素的value值
2015/02/27 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
vue 循环加载数据并获取第一条记录的方法
2018/09/26 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
python smtplib发送带附件邮件小程序
2018/05/22 Python
python os.fork() 循环输出方法
2019/08/08 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
远东集团网络工程师面试题
2014/10/20 面试题
机电一体化大学生求职信
2013/11/08 职场文书
关爱留守儿童标语
2014/06/18 职场文书
环卫工人节活动总结
2014/08/29 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
嘉宾邀请函
2015/01/31 职场文书
小学生暑假安全公约
2015/07/14 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python