7z
在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的文件格式。该格式最初被7-Zip实现并采用,但是这种文件格式是公有的,并且7-Zip软件本身亦在GNU宽通用公共许可证 (GNU LGPL)协议下开放源代码。目前LZMA软件开发工具包的最新版本为v19.00。
扩展名 | .7z |
---|---|
互联网媒体类型 | application/x-7z-compressed |
统一类型标识 | org.7-zip.7-zip-archive |
魔术数字 | '7', 'z', 0xBC, 0xAF, 0x27, 0x1C |
开发者 | 伊戈尔·帕夫洛夫 |
初始版本 | 1999[1] |
格式类型 | 资料压缩 |
免费格式? | 是(GNU宽通用公共许可证) |
网站 | 7-zip 官网 |
7z格式的MIME类型为application/x-7z-compressed
.
特色与高性能
7z格式的主要特色有:
- 开源且模块化的组件结构(允许使用任何压缩,转换或加密算法)
- 高压缩比率(使用不同的压缩算法会有不同的结果)
- 使用AES-256加密
- 支持超大文件(最大支持到16EB)
- Unicode文件名支持
- 支持固实压缩,容许内类的文件在用一个流中压缩,使类似的内容被有效的压缩。
- 压缩包档头压缩
- 支持多线程压缩
- 支持分卷压缩
加密
7z格式支持256位键钥AES算法加密。键钥则由用户提供的口令(密码短语)进行SHA-256hash算法得到。SHA-256执行218 (262144)次[2](这种技术称为密钥延伸),使得对口令的暴力解码更加困难。当前基于GPU的或是自制硬件限制了这种密钥延伸的有效性[3],所以选择一个强口令仍然很重要。7z格式提供了选项可以加密文件名。
压缩
该格式的开发结构允许添加标准以外的压缩算法。
现在支持以下算法:
- LZMA - 改良和优化算法后的LZMA最新版本,使用马尔可夫链/熵信息编码和Patricia trie。
- LZMA2 - 经过改良后的LZMA算法,支持更多 CPU 线程。
- PPMD - 基于Dmitry Shkarin之上的算法2002 PPMdH(PPMII/cPPMII)并加以优化:PPMII是1984年的PPM压缩算法(局部匹配思想是开创)的进阶版本。
- BCJ - 32位x86可执行文件转换程序,参见LZMA。对短程jump操作和调用操作的目标地址进行压缩。
- BCJ2 - 32位x86可执行文件转换程序,参见LZMA。对jump操作,调用操作和有条件jump操作的目标地址进行单独压缩。
- Bzip2 - 标准BWT算法。Bzip2使用(更快的)哈夫曼编码和(更强的)熵信息编码。
- DEFLATE - 标准LZ77-based算法。
算法的实现
下列压缩软件支持7z文件格式:
参见
- 压缩文件格式列表
- 自由文件格式
参考来源
- ^ HISTORY of the 7-Zip. [2013-07-05]. (原始内容存档于2010-04-19).
- ^ 7-zip source code. [2019-05-27]. (原始内容存档于2019-03-22).
- ^ Colin Percival. scrypt (页面存档备份,存于互联网档案馆). As presented in "Stronger Key Derivation via Sequential Memory-Hard Functions" (页面存档备份,存于互联网档案馆). presented at BSDCan'09, May 2009.
外部链接
- 7z Format(页面存档备份,存于互联网档案馆) — 关于7Z格式压缩文件的说明
- 7-Zip(页面存档备份,存于互联网档案馆) — the original file archiver for Microsoft Windows
- p7zip(页面存档备份,存于互联网档案馆) — a port of 7-Zip for Unix-like systems
- 7zX(页面存档备份,存于互联网档案馆)(Mac OS X)
- Dimtry Shkarin (Institute for Dynamics of Geospheres, Moscow, Russia) 2002: PPM: One Step to Practicality