Encrypting and decrypting files using GnuPG, OpenSSL or Mcrypt

Published on 2009-04-01. Modified on 2016-07-26.

How to encrypt and decrypt a file with GnuPG, OpenSSL or LibreSSL, or Mcrypt using the Advanced Encryption Standard and a password phrase.

GnuPG

Encryption:

$ gpg -c --cipher-algo AES256 filename

Results in a file called filename.gpg

Decryption:

$ gpg filename.gpg

Mcrypt

In this example I am also using compression.

Encryption with compression:

$ mcrypt -z -a rijndael-256 filename

Decryption with compression:

$ mcrypt -z -d filename

Se man mcrypt for more information and mcrypt --list for at list of the different supported algorithms.

OpenSSL LibreSSL

Use LibreSSL instead of OpenSSL. It's still the same command, but LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014 by OpenBSD, with goals of modernizing the codebase, improving security, and applying best practice development processes.

Encryption:

$ openssl aes-256-cbc -e -in filename -out encrypted_filename

Decryption:

$ openssl aes-256-cbc -d -in encrypted_filename -out filename