Cipher – Simple commands to Encrypt/Decrypt files and directories from Linux command line

We have written many articles about files and directories encryption and decryption but cipher is one of the easiest way to perform encryption and decryption without any Linux knowledge.

Why we need an encryption?

Encryption is the process of encoding a message or information from plaintext to ciphertext which cannot be read anyone except authorized users. It help us to protect and transfer the confidential information over the network.

What is Cipher?

Cipher is an Ash module that makes it easy to perform aes-256-cbc encryption for files and directories. It’s an another Linux command line utility.

Note : Make sure, you have to install Ash module in order to use Cipher.

Suggested Read :
>: Cryptkeeper – An Easy Way To Encrypt And Decrypt Folder or Directory In Linux
>: GnuPG – An Easy Way To Encrypt/Decrypt Files From Command Line in Linux
>: SiriKali – GUI Front End To Manage ecryptfs, cryfs, gocryptfs, securefs, and encfs Encrypted Folders
>: Gnome Encfs Manager – An Ease way to Create a Encrypted Directory in Linux
>: Steghide – An Easy way to Hide Confidential Data Inside Images and Sound Objects in Linux

What is Ash?

Ash is a modular Bash framework written with ease of use + reusability in mind. Modules are the fundamental building blocks of Ash. They allow you to build out custom CLI’s and libraries that can be used in any other Ash module.

How to install Ash?

Developer offering a shell script which will take care an installation part. This script will install the Ash utility @ /usr/local/ash.

# curl https://raw.githubusercontent.com/ash-shell/ash/master/install.sh | sh

How to install Cipher?

After you have Ash installed, just run the following command to install Cipher module.

# ash apm:install https://github.com/ash-shell/cipher.git

How to encrypt file using Cipher ?

Let’s create a file name called file1.txt with following contents This is test file for Cipher encryption.

There is no complex syntax for encryption, just use cipher:e and followed by file path. It’s using the same syntax for folder encryption too.

# more file1.txt
This is test file for Cipher encryption

Run the following command to encrypt the file called file1.txt. It will ask you to enter the password twice to encrypt a file.

# ash cipher:e file1.txt
<< cipher >>: Enter encryption password:
<< cipher >>: Confirm encryption password:
<< cipher >>: File encrypted at file1.txt.enc

Post encryption the original file has been converted as .enc extension.

check whether the encrypted file readable or not without decryption.

# ls -lh
total 4.0K
-rw-------  1 root root   90 Jul  5 15:23 file1.txt.enc

# more file1.txt.enc
U2FsdGVkX18Y6Z7ucv7/+lrOnOXacqdhR33mZYPLqJUehgVowQndrdRjGd27ZIJZ
2PxZjyIb9a+I1Z7CePegcA==

No, its not in readable format.

How to decrypt File using Cipher

There is no difficult syntax for decryption, just use cipher:d and followed by file path.

# ash cipher:d file1.txt.enc
<< cipher >>: Enter decryption password:
<< cipher >>: File decrypted at file1.txt

It will ask you to enter the password to decrypt the file. This decryption again replace the original file called file1.txt from file1.txt.enc

Now, i can able to read the file.

# more file1.txt
This is test file for Cipher encryption

How to encrypt folder using Cipher

It’s using the same command cipher:e for folder encryption too. Let’s imagine, we have a folder called folder2 for this experiment.

# ls -lh
total 4.0K
drwx------  2 root root 4.0K Feb 10 15:47 folder2

Run the following command to encrypt the folder called folder2. It will ask you to enter the password twice to encrypt a folder.

# ash cipher:e folder2/
<< cipher >>: Enter encryption password:
<< cipher >>: Confirm encryption password:
<< cipher >>: Directory encrypted at folder2.tar.gz.enc

Post encryption the original folder has been converted as .tar.gz.enc extension file.

Check whether the encrypted folder can accessible or not without decryption.

# ls -lh
total 4.0K
-rw-------  1 root root  285 Jul  5 15:27 folder2.tar.gz.enc

# cd folder2.tar.gz.enc
-bash: cd: folder2.tar.gz.enc: Not a directory

# more folder2.tar.gz.enc
U2FsdGVkX18YJSwvcZj+3VdrkVizqr8RuXmTLuV16165o6hSJ7y/3I3Hdpy+ewwR
FRlJ//kNv8IK/OwW+Nl3YmJDp3uMQom8otXviw+f6n7rqfi6T7qeYhlLL5rO6v5A
vZTYnGut6tVOv2G4ZloBkj4Cuz2Nv8M7knWk8x6yAzwKEqbCSA0206RfBNvHipi/
CCu7KtC5pciQ+uc05+LT0u58Uw6jvvJhXVq4x8HG66HRwIZBFnqJnw0IZKZT4V9p
kY3sbG92iIs0tjc4g38JaA==

No, its not in accessible format.

How to Decrypt folder using Cipher

Just use cipher:d and followed by folder path to decrypt a folder.

# ash cipher:d folder2.tar.gz.enc
<< cipher >>: Enter decryption password:
<< cipher >>: Directory decrypted at folder2/

It will ask you to enter the password once to decrypt a folder. This decryption again replace the original folder called folder2 from folder2.tar.gz.enc

Now, I am able to access a folder and it’s sub-directory too.

# ls -lh
total 4.0K
drwx------  2 root root 4.0K Jul  5 15:24 folder2

# cd folder2/

# ls -lh 
total 4.0K
-rw------- 1 root root 42 Jul  5 15:25 file2.txt

Leave a Reply

Your email address will not be published. Required fields are marked *