创建加密(密码保护)的压缩文件

如何创建一个加密(密码保护)的zip文件?

2相关链接:通过命令行对文件夹进行加密压缩 - Byte Commander
3请注意,ZIP密码并不提供保护!它们很容易被破解!请使用带有长密码的7-Zip,或是更好的GNUPG加密方式! - rubo77
现代的ZIP文件支持至少两种加密方法,使用足够长的密码短语时,AES-256加密是安全的。然而,由于ZIP文件不支持现代密码散列,即使在一般情况下,使用短密码与AES-256加密的ZIP文件也比较危险。还要注意,一些支持ZIP文件的旧软件可能不支持AES-256加密的ZIP文件,因此如果与旧软件的兼容性很重要,所有加密的ZIP文件应当较弱。 - Mikko Rantalainen
8个回答

这将提示输入密码:
zip --encrypt file.zip files

这种方式更不安全,因为密码以明文形式输入/显示出来。
zip --password (password) file.zip files

警告,标准的zip加密非常薄弱,很容易被破解。
请注意,使用-r可以递归地压缩目录和子目录。

3有没有比标准加密更好的选择? - David Oneill
9使用gnupg对最终的zip文件进行加密,可以为自己或目标设定一个密钥。 - Pete Ashdown
2无法工作,file.zip 文件为空。 - Black
22@Black 如果你想压缩一个文件夹,那么你需要使用 -r 开关。所以命令应该是 zip --encrypt file.zip -r your_folder - H G Sur
如果接收者是Windows用户,它是否与Windows兼容? - Budi Mulyo
1@BudiMulyo 是的。它与Windows兼容。 - X. Liu
在Linux Mint中使用unzip命令解压缩时需要输入密码,但你可以打开存档并查看文件列表而无需打开它们。 - Zon

从Ubuntu 17.10开始,右键点击并选择“压缩”不再显示“其他选项”。
要解决这个问题,请打开“归档管理器”,然后将文件/文件夹从您的文件管理器拖放到其中,它就会出现。

2如果未安装档案管理器(例如在我的轻量级Debian上),可以使用“$ su root -c 'apt-get install file-roller'”进行安装。 - Arsinclair
很不幸,目前这是唯一的选择。但多点几下也没多少啦。相关链接:https://askubuntu.com/questions/868493/how-to-make-files-use-file-roller-again - caw
看起来这个功能在(至少)22.04版本中已经恢复了,但是现在的用户界面有点不同。点击扩展下拉菜单(.zip),然后选择“.zip(受密码保护的压缩文件,只能在Windows和Mac上安装)”即可。 - Compholio

你还可以在Nautilus中右键单击文件夹或文件,然后选择“压缩...”。在弹出的窗口中,你可以展开“其他选项”部分来输入密码。

alt text

如果密码字段或其他选项中的任何一个未启用,则所选的压缩选项不支持它。在文件名后面从列表中选择另一个选项。根据文档:
目前,只有7-Zip、ZIP、RAR和ARJ存档支持加密。

7值得注意的是,在使用压缩器之前,您需要安装.rar - Xeoncross
29我在Ubuntu 17.10中不再看到"其他选项"(我记得在早期版本中看到过)。 - Jonathan
@Jonathan 没有解决方案,但相关的链接是:https://askubuntu.com/questions/868493/how-to-make-files-use-file-roller-again - caw

评论和答案提到默认的zip加密是薄弱的,但由于没有代码示例,这里给出一个使用.7zip的示例:
sudo apt-get install p7zip-full  # install 7zip
7za a -tzip -p -mem=AES256 foo_file.zip foo_folder  # encrypt folder

命令解释:
- `7za`:使用7zip - `a`:追加?添加文件?(`e`表示提取) - `-tzip`:使用.zip格式而不是默认的.7z格式 - `-mem=AES256`:使用AES256加密 - `foo_file.zip`:.zip文件的名称 - `foo_folder`:要加密的文件夹的名称
参考链接:https://www.tecmint.com/7zip-command-examples-in-linux/

1这可以被任何解压软件提取吗? - Ciprian Tomoiagă
我认为生成的 .zip 文件与在 Windows 上使用软件创建带密码的 .zip 文件是一样的。我还没有遇到过有人告诉我他们无法解压缩这个文件,但我也没有经常使用它。 - NumesSanguis
1Windows的zip文件夹不支持AES256加密。7-zip或WinZip(也许还有WinRAR)应该能够解压缩它。 - syockit
由于具有良好的加密功能,这是最佳答案。在Ubuntu上,使用nemo文件管理器双击以这种方式压缩的文件,至少可以(但可能也适用于Ubuntu默认的nautilus文件管理器),使您能够通过图形界面打开和解密,这对于接收者在Linux Ubuntu上进行解密非常容易和直观。 - Gabriel Staples
1我尝试在全新安装的 Win11 上使用其内置功能(Windows Explorer)提取此文件,但遇到了错误。 - Nick S

sudo apt-get install zip
zip -r --encrypt result.zip folder
  1. 安装zip
  2. 使用-r命令压缩目录和子目录
  3. 使用--encrypt命令保护您的文件

    使用基于简单密码的对称加密系统,该系统在ZIP规范中有详细说明

    Wikipedia


对于"-r"标志点个赞。 - undefined


使用bsdtar进行加密

加密a_file,创建加密的存档文件encrypted.zip(系统会提示您输入密码):

bsdtar --options zip:encryption -acf encrypted.zip a_file

解密并从加密存档中提取文件:

bsdtar -xf encrypted.zip

在创建存档时,使用-a选项可以使bsdtar根据存档的后缀.zip选择存档格式和压缩方式。如果不添加-a,将会出现以下错误信息:

bsdtar:未知模块名称:`zip'