208

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

8 Answers 8

255

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
53

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
31

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
30

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.

You must log in to answer this question.

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