ZIP
文件格式
是一种流行的数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨
(Phil Katz
),他于1989年
1月
公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME
格式为 application/zip
危机
基本上,Zip文件的发展都是由PKware公司与Winzip所推动。然而,其两家公司就某些问题上互相猜疑,导致发展缓慢。人们目前最想在
Zip文件实现的目标,就是加强目前Zip文件的加密能力。就目前而言,Zip的文件加密能力弱得可怜,仅凭单单一个口令保护,根本满足不了安全需求。虽
然卡兹在生时公开了格式,但是当时制作的时候留有为日后升级的空间。而Winzip仅仅是一个使用者,根本无法发布新标准,其标准的制订权依然保留在
PKware手中。2002年时,PKware开发了支持256位AES加密的PKZIP 5.0,但是Winzip在2003年发布的Winzip
9却被证明了无法与之相容。双方都互相指责对方违背了Zip的自由开放精神。这是Zip自诞生日起,第一个对于它来说最严峻的挑战。
(这一点不明白,zip算法应该是标准的。winrar也是根据这个做的两家公司为什么搞成这样?)
文件头
使用任何一种文本编辑器打开Zip文件,都会看到头2字母为:PK
技术
ZIP是一种相当简单的分别压缩每个文件的存档格式。分别压缩文件允许不必读取另外的数据而检索独立的文件;理论上,这种格式允许对不同的文件使用
不同的算法。不管用何种方法,对这种格式的一个告诫是对于包含很多小文件的时候,存档会明显的比压缩成一个独立的文件(在类Unix系统中一个经典的例子
是普通的tar.gz
存档是由一个使用gzip
压缩的TAR
存档组成)要大。
ZIP的规约指出文件可以不经压缩或者使用不同的压缩算法来存储。然而,在实际上,ZIP几乎差不多总是在使用卡茨
(Katz)的DEFLATE
算法。
ZIP支持基于对称加密系统的一个简单的密码,现在已知有严重的缺陷,已知明文攻击
,字典攻击
和暴力攻击
。ZIP也支持分卷压缩。
在近来一段时间,ZIP加入了包括新的压缩和加密方法的新特征,不过这些新特征并没有被许多工具所支持并且没有得到广泛应用。
压缩方法
用来对比压缩大小使用的是的内容和最大压缩比。
Shrinking(方法1)
收缩(Shrinking)是LZW
的微小调整的一个异体,同样也受到LZW专利
问题的影响。从来没有明确的是这项专利是否涵盖反收缩,不过一些开放源码
的项目(例如Info-ZIP)决定谨慎行事,在默认的构造里不包含反收缩的支持。
Reducing(方法2-5)
缩小(Reducing)包括压缩重复字节序列的组合,然后应用一个基于概率的编码得到结果。
Imploding(方法6)
爆聚(Imploding)包括使用一个滑动窗口压缩重复字节序列,然后使用多重Shannon-Fano树压缩得到结果。
Tokenizing(方法7)
令牌化(Tokenizing)的方法数是保留的。PKWARE规约没有为其定义一个算法。
Deflate和增强的Deflate(方法8和9)
这些方法使用众所周知的Deflate算法。Deflate允许最大32K的窗口。增强的Deflate允许最大64K的窗口。增强版完成任务稍稍成功一些,但是并没有被广泛的支持。
Deflate比较尺寸是52.1MiB(使用pkzip for Windows,版本8.00.0038测试)
增强的Deflate比较尺寸是52.8MiB(使用pkzip for Windows,版本8.00.0038测试)
PKWARE Data Compression Library Imploding(方法10)
PKWARE数据压缩库爆聚(PKWARE Data Compression Library Imploding),官方ZIP格式规约就此没有给出更多的信息。
比较尺寸是61.6MiB(使用pkzip for Windows,版本8.00.0038测试,选择二进制模式)
方法11
此方法被PKWARE保留。
Bzip2(方法12)
此方法使用众所周知的bzip2算法。此算法比deflate高效但是并没有被(基于Windows平台的)工具所支持。
比较尺寸是50.6MiB(使用pkzip for Windows,版本8.00.0038测试)
分享到:
相关推荐
zip文件格式1
ZIP文件格式说明,英文版: Version: 6.3.6 Status: FINAL - replaces version 6.3.5 Revised: April 26, 2019 Copyright (c) 1989 - 2014, 2018, 2019 PKWARE Inc., All Rights Reserved.
JAR文件是一种归档文件,以ZIP格式构建,以.jar为文件扩展名。...也可以使用其他zip压缩工具,不过压缩时zip文件头里的条目顺序很重要,因为Manifest文件常需放在首位。JAR文件内的文件名是Unicode文本。
包内有两个文件 ... 不需要zip库的支持,任何地方可用 用法: 把zip 文件比如说foo.zip与这...就会把zip文件解压到当前目录,当然,php必须有写这个目录的权限 支持命令行使用 欢迎到 codebase.hualiuliu.com 贴上好的程序
判断文件编码格式(支持zip),所需jar包 antlr-1.0.jar,cpdetector-1.08.jar,jchadet-1.0.jar
7-Zip 是一款免费的高压缩比的压缩软件,不仅支持独有的7zip文件格式,而且还支持各种其它压缩文件格式,其中包括 ZIP、RAR、CAB、GZIP、BZIP2和TAR等格式。此软件压缩的压缩比要比普通ZIP文件高30-50%。7-Zip 相比...
RPA之家全套视频教程,想系统学习RPA的,可以下载该资源学习。在学习的过程中,如果碰到任何问题,也可以在评论区里面交流。
批量文件编码格式转换工具.zip批量文件编码格式转换工具.zip 批量文件编码格式转换工具.zip批量文件编码格式转换工具.zip 批量文件编码格式转换工具.zip批量文件编码格式转换工具.zip 批量文件编码格式转换工具.zip...
非常全面的介绍rar文件格式,压缩过程及加减密过程。
《http://blog.csdn.net/a_flying_bird/article/details/46625873》一文用到的示例文件
工具目的:批量解压所在文件夹下的所有zip格式压缩文件 批量解压所在文件夹下的所有zip格式压缩文件 批量解压所在文件夹下的所有zip格式压缩文件
可以破解简单的密码,复杂的话费的时间很久很久,而且电脑的性能要好哦
UE4、UE5引擎解压缩zip文件插件
java 操作Zip文件(压缩、解压、加密) zip4j-1.3.2.jar ant-1.10.6.jar
Java解压缩文件,并以ZIP格式压缩文件,主要是使用java.util.zip 包中的类来实现解压、压缩文件功能,如果你对这个类并不太熟悉,你正好可以参考一下这个类是如何用的。
VB6.0调用 DLL版ZIP压缩文件夹目录和解压ZIP文件,网上很多源码不好用,所以就自己做了一个。原始代码是VC++的用VS2019编译了一个,DLL封装了下。调用很简单 '调用方法如下: 'CreateZipFileA "C:\123", "C:\123.zip...
java,获取上传的zip文件,解压缩文件,并将解压缩后的文件上传到服务器
zip 文件解压zip 文件解压zip 文件解压zip 文件解压zip 文件解压zip 文件解压zip 文件解压zip 文件解压zip 文件解压zip 文件解压zip 文件解压
4. 支持恢复跨区的Zip文件,分割Zip文件和加密的Zip文件。 5. 支持Zip文件的修复损坏的媒体,如软盘,压缩磁盘,CDROMs,等。 6. 支持批量修复文件。 7. 支持在本地计算机上查找并选择Zip文件进行修复。 8. 有必要时...