我在 Debian 上,我有一个文件夹,里面有数千个文件,大小约为 14GB。从这个文件夹中,我创建了两个加密档案:一个是受密码保护的 .7z 档案,另一个是使用 ccrypt (.tar.cpt) 加密的 TAR 档案。
(从现在开始,我假设.7z/7zip 存档意味着受密码保护的 .7z/7zip 存档)
我注意到打开 7z 存档并插入密码,让我在大约 1-2 秒内看到实际内容,可能更少(打开这个文件和没有加密的相同 .7z 文件几乎没有人类可察觉的时间差异)。但是,为了能够查看 TAR 归档内容,对 .tar.cpt 文件的 ccdecrypt 命令要长得多,大约需要 5-6 分钟。之后,我可以打开 TAR 存档并在大约 1-2 秒内看到实际内容。这给我留下了一些问题:
1. 7zip 压缩包的内容是否加密?
解密两个大小相同的文件的时间差异(.7z 只小了大约 100MB,因为文件已经是压缩格式)使我认为虽然 ccrypt 加密了 TAR 存档的所有内容,但 7zip 只加密了包含文件的存档,就像它是一个文件夹(模糊不清),很难突破它,但是存档的实际内容保持未加密状态。因此,使用 .7z 存档只需几秒钟即可查看内容(解密包含存档/检查密码的时间),而查看 .tar 文件意味着所有 14GB 内容都已被 ccdecrypted。我做了正确的假设吗?如果没有,有人可以解释一下这两种加密方法的不同之处和工作原理吗?这个特定的 7zip 存档在插入密码之前隐藏文件名,如果这在某种程度上相关的话。
2. 这是否意味着 7zip 存档的安全性较低?
如果第一点的假设是正确的,这是否意味着受密码保护的 7zip 存档不如“完全加密”的 .tar.cpt 存档安全?我知道使用 7zip 会留下很多假设提取/解密档案的痕迹/临时文件,但我的问题是关于加密档案本身的实际安全性。此外,我只会在我的台式电脑上加密/解密存档,而文件将存储在服务器上,所以即使有人会控制服务器(当然不是我的电脑),他也不会鉴于存档从未在服务器上解压缩,能够找到解压缩存档的任何痕迹,对吗?
3. 有真正的UNIX 替代品吗?
是否有一个典型的 UNIX 世界软件可以以 7zip 方式加密 TAR 存档,这样我就可以保护不那么安全关键的东西(如果 .tar.cpt 实际上比 .7z 更安全就像我假设的那样)以一种可以在 2 秒而不是 5 分钟内查看文件的方式?我不反对 7zip,它是一个很棒的实用程序,但我想知道纯 UNIX 世界是否有类似的东西可以提供(我想肯定是的)。此外,即使在最低压缩设置下,创建未压缩的 TAR 存档所需的时间也比创建 7zip 压缩文件要少得多,因此能够将“7zip 加密方法”应用于 .tar 文件将非常方便。
其他 UNIX 加密软件,如 gpg、mcrypt 和旧的 unsecure crypt 都使用相同的 ccrypt 类型的加密(我的意思是它们加密所有内容,不考虑加密方法),而 gzip、bzip2 等,如果我不是错了,鉴于 UNIX 传统“做一件事,做好”,根本无法加密任何内容。
最初,可以在几秒钟内从加密的 7zip 存档中提取单个文件的事实,或多或少类似于未加密的文件,这是我认为内容实际上并未加密的另一个原因,因为我不知道即使是单个文件也可以从 .7z 解密(并且没有足够的时间让我认为整个档案都被解密给了我那个单个文件)。
此外,我记录了同一个 7zip 存档的加密版本和未加密版本的提取时间,差异根本不明显。我认为这是内容未加密的另一个证据,但我又错了一次,因为我没有考虑现代 CPU 具有适用于 AES 等流行算法的加密插件(如已接受的答案中所建议的那样)。
7zip 存档显然只能通过命令行设置为“无压缩”,或者至少不能通过 Ark 的 GUI 设置(将滑块设置为“最小”仍会压缩存档)。如果没有压缩(-mx=0 开关,来自相同的答案),.7z 的大小和制作时间或多或少与 .tar 对应的相同。
即使不考虑 .7z 标头比 .tar.cpt 显示文件列表的时间优势,ccrypt 仅使用 1 个核心进行加密/解密,这使得过程更加缓慢。
我编辑了问题以使其更具可读性。有了接受的答案适当的报价,我希望它仍然是完全可以理解的。