42.zip
最近看linux的解压缩,无意间了解到了一个和压缩率相关的小故事——42.zip
一般我们使用压缩工具的时候,都会用到无损压缩技术,对于无损压缩,算法非常重要,不同的算法实现
的压缩率和速度有很大差别,主流的算法压缩率都在30%-40%之间,而这里要说的42.zip,它的压缩率可
以说是相当恐怖了,这里顺便贴上这个文件的下载地址:42.zip。
它的原始大小就和它的文件名一样:42kb,但是解压(解压密码是42)之后,大小足足有4.5PB,什么概念
呢,4.3G x 16的五次方:

首先,这个文件解压之后,会得到16个压缩文件,然后每个文件解压又会出现16个压缩文件,继续每个文件
解压又会得到16个压缩文件,循环5次,最终得到1048576个文件,每个最终文件大小为4.3GB。
惊喜不惊喜?刺激不刺激?其实还有比这更刺激的。
一个叫做droste.zip的大小为28kb的文件,一旦被打开之后,就会无限解压缩生成一份同样的文件,直到永远,
直到永远啊~~~~
这个文件的灵感应该取自德罗斯特效应,一张图片的部分与整张图片相同,无限循环:

一个文件的压缩率有极限么,是可以有的,可以有信息学之父克劳德·香农提出的信息熵函数算出来:

不过上述两个文件不适合套用该函数。
这种文件有什么存在的意义呢,意义在于这类文件的别名——ZIP炸弹。
这玩意儿除了会BOOM之外,其实是用来攻击别人的,一些病毒制作者,利用杀软扫描压缩文件内部的特性,
会将ZIP炸弹和病毒一起发到目标电脑上,趁着杀软扫描4.5PB的数据,病毒就可以乘虚而入了。不过现在很
多杀软已经有办法避开这类zip炸弹的佯攻了。
42.zip的更多相关文章
- zip炸弹
故障系统有人提了zip炸弹的故障,了解了一些关于zip炸弹的常识. 42.zip 是很有名的zip炸弹.一个42KB的文件,解压完其实是个4.5PB的“炸弹”. 更有甚者,一个叫做 droste.zi ...
- 操作系统OS - Zip Bomb
42.zip - A 42 kb zip file that contains 4.5 Petabytes of uncompressed data.
- c#文件操作
1.创建文件夹 //using System.IO; Directory.CreateDirectory(%%1); 2.创建文件 //using System.IO; File.Create(% ...
- Ubuntu环境搭建系列—JavaEE篇
恩,其实我是一时兴起,所以就写了目前这几篇环境的博文,希望能给自己做一个笔记,同时也能够给一些新手带来一些帮助,不会在配置方面那么迷茫.本篇文章主要就是针对Java web开发进行环境搭建. 一.To ...
- C# 文件操作大全
1.创建文件夹//using System.IO;Directory.CreateDirectory(%%1); 2.创建文件//using System.IO;File.Create(%%1); 3 ...
- Wijmo 5 与Breeze 的组合,及与METRONIC 的集成
1.Wijmo 5 是支持ANGULARJS 的HTML5 控件 http://wijmo.gcpowertools.com.cn/ 官方试用版 C1Wijmo-Eval_5.20151.42 ...
- Java最全文件操作实例汇总
本文实例汇总了Java文件操作.分享给大家供大家参考,具体如下: 1.创建文件夹 ? 1 2 3 4 5 6 7 8 9 10 11 //import java.io.*; File myFolder ...
- Dubbox监控在服务器中的安装
Jdk-1.6.30以上版本 Tomcat-7.0.42 Duboo-2.5.3 Zookeeper-3.4.5 端口分配 序 系统/端口 http https shutdown ajp 调度JMX ...
- 新唐M0 ISP下载要点
http://blog.csdn.net/rejoice818/article/details/7736029 一.注意:官方光盘内“Software Utilities”目录下,可找到ICP或ISP ...
随机推荐
- 解读:CombineFileInputFormat类
MR-Job默认的输入格式FileInputFormat为每一个小文件生成一个切片.CombineFileInputFormat通过将多个“小文件”合并为一个"切片"(在形成切片的 ...
- 10个足以让你成为更优秀的程序员的C语言资源
一些人觉得编程无聊,一些人觉得它很好玩.但每个程序员都必须紧跟编程语言的潮流.大多数程序员都是从C开始学习编程的,因为C是用来写操作系统.应用程序最常用的语言. · C编程笔记 这些是华盛顿实验学院C ...
- SVN错误:Failed to load JavaHL Library
环境:jdk1.7(64bit),eclipse4.4(64bit),SVN1.10.3 问题:在利用subclipse同步资源时,报出错误提示 Failed to load JavaHL Libra ...
- struts2中各个jar包作用 (转)
Struts2.3.4 所需的Jar包及介绍 Jar包的分类 jar包名称 jar包版本 jar包 文件名 jar包 的作用 jar包内包含的主要包路径及主要类 依赖的自有jar包名称 依赖的第三方j ...
- POJ_1159 Palindrome (线性动态规划+滚动数组)
题意是说,给定一个字符串,问至少还需要插入多少个字符才能使得该字符串成为回文字符串. 这道题一开始做的时候用了一个简单的动态规划,开了一个5000*5000的数组,用递归形式实现,代码如下: 其中d[ ...
- tomcat优化方案(转)
1.内存设置(VM参数调优) (1).Windows环境下,是tomcat解压版(执行startup.bat启动tomcat) ,解决办法: 修改“%TOMCAT_HOME%\bin\catalina ...
- LA 5846 霓虹灯广告牌(单色三角形问题)
https://vjudge.net/problem/UVALive-5846 题意: 圆周上有n个点,两两相连,只能涂红色或蓝色.求单色三角形的个数. 思路: 这个问题在训练指南105页有详细讲解. ...
- 使用阿里云ECS安装HDFS的小问题
毕设涉及HDFS,理论看的感觉差不多了,想搭起来测试一下性能来验证以便进行开题报告,万万没想到装HDFS花费了许多天,踩了许多坑,记录一下. 背景:使用两台阿里云学生机ECS,分处不同账号不同区域,一 ...
- 理解多线程管理类 CWorkQueue
有些人会觉得多线程无非是,有多少任务就启动多少线程,CreadThread,执行完了自己结束就释放资源了,其实不然.多线程是需要管理的,线程的启动.执行.等待和结束都需要管理,线程间如何通信,如何共享 ...
- sublime的一些插件
新安装的sublime缺少一些插件… 1.文件路径没有提示 ctrl+shift+p → install → autofilename 2..html后缀的文件中,使用快捷键!不能自动出现内容 ctr ...