211

How do I create an encrypted (password protected) zip file?

3
  • 2
    Related: Compressing folders with password via command line
    – Byte Commander
    Apr 24, 2015 at 21:48
  • 3
    Note, that Zip Passwords is no protection! those can be easily broken! use 7-Zip with a long password instead, or better GNUPG encryption!
    – rubo77
    Feb 7, 2018 at 10:36
  • Modern ZIP files support at least two encryption methods and the AES-256 encryption is safe when you use long enough passphrase. However, as ZIP files do not support modern password hashing, use of short passwords with even AES-256 encrypted ZIP is even more dangerous than short passwords in general. Also note that some older software that support ZIP files may not support AES-256 encrypted ZIP files so if compatibility with older software is important, all ZIP encrypted files should be weak. Mar 9, 2023 at 18:14

9 Answers 9

259

This will prompt for a password:

zip --encrypt file.zip files

This is more insecure, as the password is entered/shown as plain text:

zip --password (password) file.zip files

Warning, the standard zip encryption is very weak and is easily cracked.
Note, Use -r to zip directory and subdirectory recursively.

8
  • 5
    Is there a better option from the standard encryption? Dec 15, 2010 at 20:47
  • 9
    Using gnupg on the final zip with a key for yourself or your destination. Dec 15, 2010 at 21:43
  • 2
    Does not work file.zip is empty
    – Black
    Aug 29, 2017 at 12:15
  • 22
    @Black If you're trying to compress a folder, then you need to use -r switch. So it'll be zip --encrypt file.zip -r your_folder
    – H G Sur
    Jan 20, 2018 at 11:55
  • 1
    @BudiMulyo Yes. It's compatible with Windows.
    – X. Liu
    Oct 24, 2020 at 10:26
54

Starting from Ubuntu 17.10, right-clicking and selecting "Compress" no longer has "Other Options" listed.

To resolve this, open "Archive Manager" and then drag & drop the files/folders from your File Manager into it and it will appear.

3
  • 2
    If Archive Manager is not installed (as in my lightweight debian for example), it can be installed with $ su root -c 'apt-get install file-roller'. May 14, 2020 at 8:27
  • Unfortunately, this is the only option right now. But it’s not that many clicks more. Related: askubuntu.com/questions/868493/…
    – caw
    Jul 15, 2021 at 19:13
  • It appears that this functionality is restored in (at least) 22.04, but the UI is a little different now. Click the extension drop-down (.zip) and choose ".zip 🔒 (Password protected zip, must be installed on Windows and Mac.)" instead.
    – Compholio
    Nov 28, 2022 at 21:36
32

You can also right-click on a folder or file(s) in Nautilus and select "Compress...". In the resulting window, you can expand the "Other Options" section to enter a password.

alt text

If the password field or any of the other options are not enabled, then the selected compression option does not support it. Select a different one from the list after the filename. According to the documentation:

Currently, only 7-Zip, ZIP, RAR and ARJ archives support encryption

3
  • 7
    It's worth noting that you need to install .rar before you can use it in the compressor.
    – Xeoncross
    Feb 20, 2012 at 0:59
  • 29
    I don't see "Other Options" anymore in Ubuntu 17.10 (I remember seeing it in earlier version though)
    – Jonathan
    Dec 12, 2017 at 22:04
  • @Jonathan No solution, but related: askubuntu.com/questions/868493/…
    – caw
    Jul 15, 2021 at 19:13
32

Comments and answers have mentioned the default zip encryption is weak, but since there is no code example, here is on with .7zip:

sudo apt-get install p7zip-full  # install 7zip
7za a -tzip -p -mem=AES256 foo_file.zip foo_folder  # encrypt folder

Commands explained:

  • 7za: Use 7zip
  • a: Append? / Adding files? (e for extraction)
  • -tzip: Use .zip format instead of default .7z
  • -p: specify a password for encryption
  • -mem=AES256: Use AES256 encryption
  • foo_file.zip: Name of .zip file
  • foo_folder: Name of folder to encrypt

Answer based on: https://www.tecmint.com/7zip-command-examples-in-linux/

5
  • 1
    can this be extracted by any unzipping software ? Jul 15, 2019 at 13:55
  • I think the resulting .zip is the same as using software on Windows to create a .zip with a password. I haven't experienced anyone telling me they couldn't unzip this, but I haven't used it often. Jul 21, 2019 at 14:17
  • 1
    Windows zip folder does not support AES256. 7-zip or WinZip (maybe WinRAR too?) should be able to extract it.
    – syockit
    Jul 20, 2020 at 15:21
  • Best answer since it has good encryption. Double-clicking a file zipped in this manner in the nemo file manager at least (but probably on Ubuntu's default nautilus file manager too) on Ubuntu allows you to open and decrypt via a GUI, making it very easy and intuitive for a recipient to decrypt on Linux Ubuntu. Aug 18, 2021 at 19:02
  • 2
    FYI I tried extracting this on a fresh install of Win11 using its built-in capability (Windows Explorer) and it failed with an error.
    – Nick S
    Oct 19, 2022 at 11:53
5
sudo apt-get install zip
zip -r --encrypt result.zip folder
  1. Install zip
  2. Use -r to zip directory and subdirectory
  3. Use --encrypt to secure your files

    with a simple password-based symmetric encryption system, which is documented in the ZIP specification

    Wikipedia

1
  • Thumb up for "-r" flag.
    – MilanG
    Nov 7, 2023 at 12:39
2

Encrypt

gpg -c your.zip

creates your.zip.gpg

Decrypt:

gpg your.zip.gpg

To turn off password caching

More details including directories.

https://superuser.com/a/249516/27275

1

with bsdtar

Encrypt a_file, creating the encrypted archive encrypted.zip (you'll be prompted for a password):

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

Decrypt and extract the file from the encrypted archive:

bsdtar -xf encrypted.zip

The -a option when creating the archive makes bsdtar choose the archive format and its compression using the ending of the archive, .zip. If you don't add -a, you'll get this error message:

bsdtar: Unknown module name: `zip'

0

The metadata (filenames) of an encrypted zip can be read with unzip -l

https://security.stackexchange.com/questions/186878/can-the-content-of-a-password-protected-zip-file-be-known

The solution, as described in that link is to double-zip it but it is really not elegant.

Also, some email providers block that kind of attachment, gmail for example.

0

Here's a simple way of compressing by encrypting and extracting by decrypting.

You can use the following to compress zip -er output.zip <folder_to_compress>.

It will prompt you for a password. Enter password.

To decrypt/extract use unzip <output.zip>.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .