如何使用加密的文件名压缩目录?


17

使用命令行,我知道可以使用以下命令加密目录:

zip -er Directory.zip /path/to/directory

但是,这不会对文件名本身进行加密。如果有人跑步:

unzip Directory.zip

并反复输入错误的密码,unzip命令将遍历所有包含的文件名,直到输入正确的密码为止。样本输出:

unzip Directory.zip 
Archive:  Directory.zip
   creating: Directory/
[Directory.zip] Directory/sensitive-file-name-1 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-1  incorrect password
[Directory.zip] Directory/sensitive-file-name-2 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-2  incorrect password
[Directory.zip] Directory/sensitive-file-name-3 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-3  incorrect password

等等。

使用命令行,是否可以使用加密方式压缩目录,同时也可以加密或隐藏文件名?

谢谢。


您可能不想使用zip的默认加密,因为它的安全性较弱,因此请使用,7zip因为它使用基于AES的加密。
Pierz

zip的默认加密是什么?您认为zip的默认加密不安全的来源是什么?
Leo Galleguillos

1
大多数zip工具(有些新的zip工具使用更好的加密技术)仍然使用PKZIP流密码,该密码最初在1994年被证明是较弱的:rd.springer.com/content/pdf/10.1007%2F3-540-60590-8_12 .pdf Wikipedia页面提供了基本概述:en.wikipedia.org/wiki/Zip_
file_format)

Answers:


26

在zip文件中,仅文件内容被加密。文件元数据(包括文件名)未加密。那是文件格式的局限性:每个条目分别压缩,如果加密,则分别加密。

您可以改用7-zip。它支持元数据加密(-mhe=on使用Linux命令行实现)。

7z a -p -mhe=on Directory.7z /path/to/directory

所有主要操作系统和大多数次要操作系统都有7zip实现,但是可能需要安装额外的软件(IIRC Windows目前可以将加密的zip文件解压缩。)如果需要7z进行解密是一个问题,则只能依靠zip,首先使用它将目录打包到一个文件中,然后对该文件进行加密。如果这样做,请关闭单个文件的压缩,并指示外部zip压缩zip文件,您总体上将获得更好的压缩率。

zip -0 -r Directory.zip /path/to/directory
zip -e -n : encrypted.zip Directory.zip

1
最好避免使用zip加密-可以使用7zip在第二行生成更安全地加密(AES)的zip文件:7z a -p -tzip encrypted.zip Directory.zip
Pierz

2

您可以使用自己喜欢的工具创建一个存档,然后用于bcrypt执行加密/解密。

A)要创建一个加密文件:

tar -czf Directory.tgz /path/to/directory
bcrypt Directory.tgz

这将为您提供Blowfish加密的文件 Directory.tgz

B)撤销此过程:

bcrypt Directory.tgz.bfe
tar -xf Directory.tgz

2
这种方法很好,但是您应该使用另一种加密工具- bcrypt使用EBC来揭示加密数据中的结构。有关详细信息,请参见Debian错误#700758(因此,Debian bcrypt仅支持解密)。
Stephen Kitt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.