Skip to main content

Encryption and Decryption in Linux - I

Encryption:
          Nothing but the conversion of plain text to cipher text(not understandable).

Decryption:
         It's conversion of  cipher text to plain text.

There are wide variety of tools to achieve it.This post deal with rapid fire commands that you can throw at terminal

Tools used:
       [+] Openssl
       [+] tr
       [+] base64

Mostly the above tools are preinstalled in lot of distribution if not download it from software repository

Let's get started

{1} BASE64 encryption and decryption
 
Most widely used algorithm for simple encryption and decryption for conversion of binary data into ASCII format ( Used in MIME for conversion of Non-ASCII to ASCII characters ) More details click the above link.

To convert binary to ASCII uses below commands

              echo "Sample text" | base64
              
                 U2FtcGxlIHRleHQK

To decrypt use

                echo "U2FtcGxlIHRleHQK" | base64 -d

                Sample text

Note:
          -d    => Decoding flag

{2} ROT13 encryption and decryption

One of the famous algorithm which can be used for simple encryption and decryption.sweet thing about this algorithm is both encryption and decryption use same code.

     One Liner to encode/decode text


       > echo "Sample text" | tr 'A-Za-z' 'N-ZA-Mn-za-m'   
           Fnzcyr grkg

       > echo "Fnzcyr grkg" | tr 'A-Za-z' 'N-ZA-Mn-za-m'
          Sample text


{3}Openssl encryption and decryption


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.

       The openssl program is a command line tool for using the various cryptography functions of OpenSSL's crypto library from the
       shell.  It can be used for

        o  Creation and management of private keys, public keys and parameters
        o  Public key cryptographic operations
        o  Creation of X.509 certificates, CSRs and CRLs
        o  Calculation of Message Digests
        o  Encryption and Decryption with Ciphers
        o  SSL/TLS Client and Server Tests
        o  Handling of S/MIME signed or encrypted mail
        o  Time Stamp requests, generation and verification

Algorithms in Openssl

   MESSAGE DIGEST COMMANDS
       md2       MD2 Digest

       md5       MD5 Digest

       mdc2      MDC2 Digest

       rmd160    RMD-160 Digest

       sha       SHA Digest

       sha1      SHA-1 Digest

       sha224    SHA-224 Digest

       sha256    SHA-256 Digest

       sha384    SHA-384 Digest

       sha512    SHA-512 Digest

   ENCODING AND CIPHER COMMANDS
       base64    Base64 Encoding

       bf bf-cbc bf-cfb bf-ecb bf-ofb
                 Blowfish Cipher

       cast cast-cbc
                 CAST Cipher

       cast5-cbc cast5-cfb cast5-ecb cast5-ofb
                 CAST5 Cipher

       des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ofb
                 DES Cipher

       des3 desx des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
                 Triple-DES Cipher

       idea idea-cbc idea-cfb idea-ecb idea-ofb
                 IDEA Cipher

       rc2 rc2-cbc rc2-cfb rc2-ecb rc2-ofb
                 RC2 Cipher

       rc4       RC4 Cipher

       rc5 rc5-cbc rc5-cfb rc5-ecb rc5-ofb
                 RC5 Cipher

Next post we will discuss how to use openssl to do encryption and decryption


Source:

Wikipedia.org
Linux Man Page


      
 

Comments

Popular posts from this blog

Vim - Text Editor which last for Decade

what's Vim?     Vim is a highly configurable text editor for efficiently creating and changing any kind of text. It is included as "vi" with most UNIX systems and with Apple OS X                                                                                                            ---> From Vim.org  when i first heard it, what a command line editor which is awesome and i said to myself  NO WAY, there are tons of editor which looks good and easy learn curve such as Atom,Sublime,VSCode and bunch others What makes vim special than other editors?  Different from everything you have used before ( because it has modes - insert mode,visual mode,Command mode ) Forget the mouse ( why?...

Demystify - Linux GUI

GUI In Linux GUI ( Graphics User Interface ) as everyone know about.  I am writing this article so that we can able to understand how to run GUI apps in containers but we need to understand how it works in linux. Why linux?   Most of the container we use are Linux based inorder run GUI in Linux we need know how it works.. Back in early days computer fill the entire room and if you want to access it you will be presented TTY (TeleType Machine) you can still see this screen if you press CTRL + ALT + F1 in Linux. ( To get back to GUI press CTRL + ALT + F7 ) Linux spin off 8 TTY when it boots ( we can configure more or less ) Graphics in linux is handled by bunch of little programs. They are Display manager Display manger which is the key component for graphics in which mainly graphics servers lie in linux the X.org is the defacto of Display manger. which has two components X Server  X Client Here little twist server talks to the client ( o...

My First Open Source Contribution

It's my dream to contribute to open source. It is all started in 2 year of college i came to know the linux is so much awesome to work and learn about computer and know about github where you can find the open source software code. I thought, I need to learn more to contribute to the software community later i read lot of article about contributing to opensource. Every article say Learn a programming language you like. Find a project written in programming language you choose. Read it. Use it. Find any bug open a issue. Fix the issue Seems like simple as pie. I thought let's give it a try My scenario I use C to solve program in hackerrank and other coding sites and i know little bit about C++ and java at the time. when i searched for the project, all project are seems to be dinosaur huge, Finally i convinced myself and pick a project. I started reading the source code. It donot understand lot of code and i donot know where to find those answers. then frus...