Skip to main content

mcrypt command examples for encrypting files in Unix and Linux.

#!/usr/bin/env bash

# Article: Linux or UNIX password protect files
# - http://www.cyberciti.biz/tips/linux-or-unix-password-protecting-files.html

##
# mcrypt command
#
# Mcrypt is a simple crypting program, a replacement for the old unix crypt.
# When encrypting or decrypting a file, a new file is created with the
# extension .nc and mode 0600. The new file keeps the modification date
# of the original. The original file may be deleted by specifying the `-u`
# parameter.
##

# Encrypt data.txt file:
mcrypt data.txt
  # > Enter the passphrase (maximum of 512 characters)
  # > Please use a combination of upper and lower case letters and numbers.
  # > Enter passphrase:
  # > Enter passphrase:

# A new file is created with the extension .nc i.e. data.txt.nc:
ls data.txt.nc
cat data.txt.nc

# Decrypt the data.txt.nc file:
mcrypt -d data.txt.nc
  # > Enter passphrase:
  # > File data.txt.nc was decrypted.
  # > Verify that file was decrypted:

ls data.txt
cat data.txt

# For mcrypt to be compatible with the Solaris des, use following parameters:
mcrypt -a des --keymode pkdes --bare -noiv data.txt

# Delete the input file if the whole process of encryption/decryption succeeds
# (pass -u option):
mcrypt -u data.txt

# OR
mcrypt -u -d data.txt.nc

##
# openssl command
#
# OpenSSL is a cryptography toolkit implementing the Secure Sockets Layer
# (SSL v2/v3) and Transport Layer Security (TLS v1) network protocols and
# related cryptography standards required by them. You can use the openssl
# program which is a command line tool for using the various cryptography
# functions of OpenSSL's crypto library from the shell. It can be used for
# encrypt and decrypt files with a password.
##

# Encrypt file.txt to file.out using 256-bit AES in CBC mode
openssl enc -aes-256-cbc -salt -in file.txt -out file.out

# Decrypt encrypted file file.out (`enc` Encoding with Ciphers)
openssl enc -d -aes-256-cbc -in file.out