Skip to main content

Encryption in C# Continue

 Encryption in C# Continue

From our previous article Encryption in C#, encryption is the process of translating plain text data (plaintext) into something that appears to be random and meaningless (ciphertext). It is used to transform a data into some un-readable form so that authenticated person only can read/access the data. It requires some secret information to transform the plain text to cipher text; it is usually referred as key.

Decryption is the process of converting ciphertext back to plaintext. To encrypt more than a small amount of data, symmetric encryption is used.

There are many modern cryptographic methods used for encryption and decryption and it is classified in to two classes of key based algorithms.

1.      Symmetric Algorithm

o    Same key is used for both Encryption and Decryption. The key will be kept as secret.

o    Symmetric Ciphers is divided into Stream and Block Ciphers.

§  Stream Ciphers – It encrypts a single bit of plain text at a time.

§  Block Ciphers – It takes number of bits and encrypts them as a single unit.

2.     Asymmetric Algorithm

o    Different key is used for Encryption and Decryption. It is also called as public Key algorithm.

o    Encryption key is public and the Decryption key will be kept as secret.

o    By using this asymmetric algorithm, anyone can encrypt the message by using encryption key but the message can be decrypted only by using decryption key.

3.     Hybrid Encryption – Symmetric and Asymmetric algorithm are used together and it is called as Hybrid Encryption.

Symmetric Encryption Algorithm are as below

  • Data Encryption Standard (DES)
  • Blow Fish
  • Triple DES (3DES)
  • Advanced Encryption Standard (AES)

The code snippets below demonstrate the encryption and decryption using C# programming Language

Encryption

public static string EncryptText(string plainText)

        {

            //Convert the plain text to bytes array

            var plaintextToArray = UTF8Encoding.UTF8.GetBytes(plainText);

            //Instantiate the MD5 cryptor Service provider

            MD5CryptoServiceProvider serviceProvider = new MD5CryptoServiceProvider();

 

            var securityKeyArray = serviceProvider.ComputeHash(UTF8Encoding.UTF8.GetBytes(securityKey));

            //

            serviceProvider.Clear();

            // Data encryption Standard Service Provider

            var desServiceProvider = new TripleDESCryptoServiceProvider

            {

                Key = securityKeyArray,

                Mode = CipherMode.ECB,

                Padding = PaddingMode.PKCS7

            };

          // Create Encryption

            var cryptoTransform = desServiceProvider.CreateEncryptor();

 

            byte[] encrytedArray = cryptoTransform.TransformFinalBlock(plaintextToArray, 0, plaintextToArray.Length);

 

            desServiceProvider.Clear();

 

            return Convert.ToBase64String(encrytedArray, 0, encrytedArray.Length);

        }

 

Decryption

public static string DecryptText(string encryptedText)

        {

            var encryptedTextArray = Convert.FromBase64String(encryptedText);

 

            var cryptoServiceProvider = new MD5CryptoServiceProvider();

 

            var secuKey = cryptoServiceProvider.ComputeHash(UTF8Encoding.UTF8.GetBytes(securityKey));

            //

            cryptoServiceProvider.Clear();

 

            var desTripleCryptoService = new TripleDESCryptoServiceProvider

            {

                Key = secuKey,

                Mode = CipherMode.ECB,

                Padding = PaddingMode.PKCS7

            };

 

            var cryptoTransform = desTripleCryptoService.CreateDecryptor();

 

            var decryptedArray = cryptoTransform.TransformFinalBlock(encryptedTextArray, 0, encryptedTextArray.Length);

            //

            desTripleCryptoService.Clear();

            //

            return UTF8Encoding.UTF8.GetString(decryptedArray);

        }


Thank you

Comments

Post a Comment

Popular posts from this blog

The String.Join Method in C# Explained

The String.Join Method in C#   The string.Join concatenates the elements of a specified array or the members of a collection, using the specified separator between each element or member. Overloads of string.Join Method Description Join(Char, Object[]) Concatenates the string representations of an array of objects, using the specified separator between each member. Join(Char, String[]) Concatenates an array of strings, using the specified separator between each member. Join(String, IEnumerable<String>) Concatenates the members of a constructed IEnumerable<T> collection of type String, using the specified separator between each member. Join(String, Object[]) Concatenates the elements of an object array, using the specified separator between each element. Join(String, String[]) Concatenates all the elements of a string array, usi...

Most Popular Programming Languages in 2020

Most Popular Programming Languages in 2020 In this blog post, you will learn about the most popular programming languages in 2020 for creating the best web applications. Check its pros and cons. Analyzed by technostacks Not very long ago, just a few people were considered to be computer programmers, and the general public viewed them with awe. In this digital age that we are now living in, however, a large number of IT jobs need a solid grasp of one or more programming languages. Whether one wants to develop a mobile app or get a certification for having programming knowledge, or even to learn new skills, one needs to opt for the right programming language. Below mentioned eight most popular programming languages which are in demand for software development and web applications. This is the most used programming languages in 2019 and will be in 2020. For each, there is little information about the language, benefits and its complexity, as well as about its usage. One must...

Creating Database with some tables in Sql Server step by step

SQL Database and Tables Creation step by step We have installed Sql Server in our previous post here , now we are going to see how to create database and its table in sql server. Steps below show how to create a database and its tables, but we need to install Sql Server Management Studio for Graphical User Interface program to create and maintain databases. Now download and install the Sql Server Management Studio here , after installing the software, we connect to the sql server using the Management Studio as shown below Click on the connect button as shown above after selecting the Server type, Server name and Authentication. Server Type: allows you to select the server type such as Database Engine, Reporting Services or Integration Services. But in post, we are living it with the default Server type that is, Database Engine. Server name : Let us select the server we are connecting to, we also allow the default since we have only one instance. Authent...