使用命令行,我知道可以使用以下命令加密目录:
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
诸若此类。
使用命令行,是否有一种方法可以在加密的同时对目录进行压缩,同时对文件名进行加密或隐藏?
谢谢。
发布于 2016-06-16 07:32:50
在压缩文件中,只有文件内容被加密。文件元数据(包括文件名)未加密。这是文件格式的一个限制:每个条目分别压缩,如果加密,则分别加密。
您可以使用7-拉链代替。它支持元数据加密(带有Linux命令行实现的-mhe=on
)。
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
发布于 2016-06-15 22:15:31
您可以使用您喜欢的工具创建一个归档文件,然后使用bcrypt
执行加密/解密。
( A)创建加密文件:
tar -czf Directory.tgz /path/to/directory
bcrypt Directory.tgz
这将为您提供一个Blowfish加密文件Directory.tgz
。
( B)扭转这一进程:
bcrypt Directory.tgz.bfe
tar -xf Directory.tgz
发布于 2023-02-14 03:05:05
因为还没有一个严格回答如何使用zip加密文件名-列表以及文件(S)内容的答案,这里有一个。正如在其他答案中所评论的,压缩加密可能是安全的,也可能不是安全的,这取决于您使用的是哪个版本,无论如何,从技术角度来看tar & gpg之类的工具更好,但是当您不得不为非技术用户创建可移植的档案时(即只使用zip,也许他们不能或甚至不会安装7-zip.)一个简单的解决方法是对中间的普通压缩进行加密。它通常只为额外的头增加大约200个字节。
% zip -r directory.zip secret-stuff
% zip -e -r directory-encrypted.zip directory.zip
然后,当有人试图列出文件名(或者在密码猜测期间显示文件名),他们只会看到以下内容:
% unzip -l directory-encrypted.zip
Archive: directory-encrypted.zip
Length Date Time Name
--------- ---------- ----- ----
1747768 2023-02-14 04:45 directory.zip
--------- -------
1747768 1 file
在提取外拉链之后,中间的拉链将是可列出的:
% unzip -l directory.zip # unencrypted intermediate archive
Archive: directory.zip
Length Date Time Name
--------- ---------- ----- ----
0 2023-02-14 03:50 secret-stuff/
0 2023-02-06 21:36 secret-stuff/really/
0 2023-02-06 21:36 secret-stuff/really/totally/
1844742 2023-02-06 19:44 secret-stuff/really/totally/uh-oh.pdf
72279 2023-02-06 19:45 secret-stuff/really/totally/another-one.pdf
0 2023-02-14 03:50 secret-stuff/really/oops/
225 2023-02-14 03:50 secret-stuff/really/oops/file-list.txt
--------- -------
1917246 7 files
https://unix.stackexchange.com/questions/289999
复制相似问题