大家应该都用过文件压缩包这个东西,通过打包压缩,可以减少文件体积,对文件加密,绕过一些网络传输规则。虽然我们经常使用压缩文件,但不一定真正了解,数据压缩的原理和不同压缩文件格式的区别。
一、压缩原理
压缩分为“有损压缩”和“无损压缩”两种:
● 有损压缩就是直接对文件进行压缩,删除不重要的数据,一般用于音乐、视频、图像等媒体文件。有损压缩后不能还原,比如在微信上传图片未勾选“原图”时,就会被有损压缩。
● 无损压缩,数据可以被完美还原。简单来说所有文件都是由代码组成的,代码数量决定了文件体积,但是,文件体积与文件包含的有效信息量却并不对等。因为文件中的代码并不是最精简的状态,如果将这些代码精简,就能在文件内容不变的情况下缩小文件体积。所有压缩软件的工作原理都是这样,只是不同格式的算法不同。
举个不太恰当的例子:①我家门前有两棵树,一棵是枣树,另一颗也是枣树;②我家门前两枣树。前面这两句话传达的信息是一样的。而解压文件的过程也就是将精简的内容还原,比如 N*8 还原成 NNNNNNNN。综上所述,如果压缩率高,自然要进行的运算量也就更大,压缩和解压也就更花时间。
二、格式区别
目前主流的压缩文件格式大致有三种,分别是:ZIP、RAR和7Z,它们分别来自:Winzip、Winrar以及7-Zip。
1、ZIP格式
ZIP应该算是最常见的压缩文件格式了,诞生于 1986 年,它的压缩率在众多压缩格式中只能算平庸,但因为它是开放免费的格式,所以在那个没有太多压缩方式可选的年代很快流行起来。现在,你甚至不需要单独为它安装一个压缩或者解压缩软件,因为我们使用的Windows10系统或MacOS系统都集成了对ZIP文件的支持,而不需要安装第三方解压工具,同时,几乎所有的压缩软件都会提供对ZIP文件的支持,不用担心格式不兼容的问题,这些足以体现出ZIP格式的地位。
ZIP时代最出名的压缩软件就要数WinZIP了,它几乎是当时每台电脑都必备的软件,直到Windows10系统开始集成了对ZIP文件的支持,以及后起新秀RAR格式的出现,使得WinZIP不再是那么的必要,才让它逐渐退出了大家的视线。
2、RAR格式
如果你对比过的话会发现 rar 格式的压缩率通常高于 zip,但你大概不知道这是一个专利文件格式,只有收费软件WinRAR可以创建rar格式的压缩文件,但其他压缩软件可以解压 rar 文件。
rar 可以说各方面都强于 zip,这也是它作为收费软件能活下来的原因。当年电脑刚刚开始普及的时候,软盘容量很小,网络传输速率又慢,压缩率更高的 rar 自然成了广大网友分享资源的首选,下载站为了节约带宽成本,也都使用 rar。加上WinRAR 在国内基本“免费”的原因,所以 rar 压缩格式在国内还是主流压缩格式,rar 在国外市场的占比就要少很多。
对RAR文件进行压缩或者解压缩,首选的软件当然是WinRAR,与之前的WinZIP一样,它几乎也是现在每台电脑都必装的软件。不过,作为商业软件,WinRAR只允许用户进行30天的免费试用,虽然过期后软件仍然能够正常工作,但就已经不再合法了。
3、7Z格式
另外你可能还见过 7z 格式,这是开源软件 7-Zip 的开源压缩格式,和 zip 一样,主流的软件都能打开或创建 7z 格式的文件。作为压缩格式中的后起之秀,7z 的压缩率甚至比收费的 rar 还要高,但是它诞生在 rar 已经普及的年代,并没有乘上互联网普及的的东风,所以也难以取代 rar 和 zip 的地位。
为了实现高压缩率,7z 使用了包括报头压缩在内的各种奇淫巧计。也正是由于这些功能,当 7z 压缩文件受到一点轻微损坏,就几乎不可能恢复它。
三、安全性问题
zip和rar都可设密码保护,但是rar安全性更强。由于zip广泛被使用并且代码开源的原因,压缩文件被暴力破姐是常有的事情。而对于zip密码来说“明文攻击”更是致命的。如果了解到被加密压缩zip文件的某段内容就可以反推zip加密口令。
而rar的出现就很好的弥补了zip的安全性问题,它采用的是目前公认的安全系数很高的AES对称加密算法,密码长度可达128位字符。即便你跑字典暴力破解搞到天荒地老也很难解开。
综上而言,如果你是出于他人方便或者是减少压缩和解压时间则采用zip方式,若你是出于安全性方面考虑或者追求高压缩率则选择rar!