![为什么无法在 Windows 上加密和压缩文件夹?](https://linux22.com/image/1452090/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%97%A0%E6%B3%95%E5%9C%A8%20Windows%20%E4%B8%8A%E5%8A%A0%E5%AF%86%E5%92%8C%E5%8E%8B%E7%BC%A9%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
我读这个博客 这解释了为什么这是不可能的,但我似乎无法找出原因。我觉得这篇博客有点难以理解。
有人能解释一下为什么不能压缩和加密同一个文件夹或文件吗?一个简单的例子对于理解这背后的原因大有帮助。
对压缩文件/文件夹进行加密是否会增加其大小,从而破坏压缩的目的?
同样,对加密文件/文件夹进行压缩是否会危及文件的安全性?
如果是,怎么办?
答案1
从技术上来说,你能通过加密操作和压缩操作运行数据;然而,这通常不会导致数据实际上更小,这可能就是为什么微软设计 NTFS 使其互斥而 Windows 阻止您同时执行这两项操作的原因(这只是猜测,只有微软才能真正回答为什么他们设计 NTFS 文件系统将压缩和加密视为互斥的)。
无损压缩(此处使用的压缩方式,或 .zip、.rar 或 .7z 档案中使用的压缩方式)仅在存在可以简化的非随机数据时才有效。另一方面,好的加密会刻意尝试使数据看起来是随机的,因此压缩加密数据实际上没有意义。
另一方面,加密压缩数据确实有意义,我不确定 NTFS 中 EFS 和压缩文件的实现方式是否存在一些技术限制,从而阻止在加密之前进行压缩。(一般来说,加密会使原始数据的大小增加约 50%)
答案2
由于 NTFS 压缩的执行方式,NTFS 文件压缩和文件加密是互斥的。您一次只能对一个文件使用其中一个选项。
http://support2.microsoft.com/default.aspx?scid=kb;en-us;Q223093
我猜更多具体的细节尚未公开。
答案3
Darth Android 的答案是正确的。但要回答你的最后一个问题,你能压缩加密文件而不影响安全性。压缩是一种加密形式,因此压缩的加密文件在技术上更多的安全。但是,它效率低下 - 这可能是 MS 不允许它的原因。
答案4
你可以加密压缩文件,但压缩加密文件应该是无用的。我将给你一个极其简化的版本,但你应该能够明白这个想法。
我有以下文字:
格里芬是有史以来最酷的。格里芬是有史以来最酷的。格里芬是有史以来最酷的。格里芬是有史以来最酷的。格里芬是有史以来最酷的。格里芬是有史以来最酷的。格里芬是有史以来最酷的。格里芬是有史以来最酷的。格里芬是有史以来最酷的。格里芬是有史以来最酷的。
为了简单起见,我们假设压缩软件执行以下操作。它会识别出文本中存在一种模式,在本例中为“Griffin 是有史以来最酷的人”。它会采用该模式并为其分配一个数值,我们假设为 0。然后压缩它,它变成“Griffin 是有史以来最酷的人。”= 0。文本 = [0][0][0][0][0][0][0][0][0][0][0]。这是有效的,因为在语言中我们使用许多相同的单词/短语/模式。实际的软件要先进得多。
如果你试图压缩加密信息,问题就会出现,因为加密信息看起来应该是随机的。如果我们加密之前的文本,我们应该得到类似这样的结果
quhjio43huiot3rnswyj4hrtis;g4wrjhtpiomnkgq;eht89jiognkwusjnehtn;oiw354yjthineajqnh54y689uio6895uuyio32ujwuywun279y8uhwtjin2hywa9p88h3uj7py;huniysbjkr.5yh75o.ui4jn;jsrujio;hjmngkfukop;'jsmneklrtjhsgiodghnbgfdsjh;sklr65uij9ynrio;eiuyjyphiro;uj6;9ios5uy76895y9auy9htsuy7
压缩在这里起不了多大作用,因为没有任何模式......或者至少不应该考虑到我只是用手在键盘上滑动。
另外,还要注意压缩应该是无损的。一些压缩方法,尤其是那些涉及声音的压缩方法,会删除不需要的信息,例如人耳听不到的太高或太低的声音。这对于声音来说没问题,但如果您正在压缩报告,您可能不希望丢失随机句子。
还值得注意的是目前的理解压缩会削弱加密信息的安全性,尽管这一点似乎还存在争议。