Friday, April 24, 2015

Working on Data Encryption / Decryption

While coding we may have to handle sensitive data sometimes, like password fields. We may required this data not to be visible to the outside world. In such cases we can implement the concept of Data Encryption/ Decryption.


Following code will show how to implement the same in C#.NET.


We have to create a simple C#.NET console application which will primarily focus on three different types of data Encryption Base64, SHA1, MD5.
So create three different methods to implement each type of encryption.
Also for Base64 data decryption create another method. Data decryption in remaining two types SHA1, MD5 is  not possible, it is one way process.


Complete code listing is as follows -


static void Main(string[] args)
{
Console.Write("Enter word : ");
string myWord = Console.ReadLine();
//Base64 Encoding
Console.WriteLine("=====1. Base 64 Encoding=====");
string MyEncoded=Encode_Base64(myWord);
string MyDecoded=Decode_Base64(MyEncoded);
Console.WriteLine("Encoded Word : "+MyEncoded);
Console.WriteLine("Decoded Word : "+MyDecoded);
Console.WriteLine(string.Empty);
//Hashing
Console.WriteLine("=====2. Hash SHA1 one way , Decoding not possible=====");
MyEncoded=Encode_Hash(myWord);
Console.WriteLine("Encoded Word : "+MyEncoded);
Console.WriteLine(string.Empty);
//MD5
Console.WriteLine("=====3. MD5 =====");
MyEncoded = Encode_MD5(myWord);
Console.WriteLine("Encoded Word : " + MyEncoded);
Console.WriteLine(string.Empty);
Console.ReadLine();
}
public static string Encode_Base64(string word)
{
var encoded = System.Text.Encoding.UTF8.GetBytes(word);
return System.Convert.ToBase64String(encoded);
}
public static string Decode_Base64(string Eword)
{
var decoded = System.Convert.FromBase64String(Eword);
return System.Text.Encoding.UTF8.GetString(decoded);
}
public static string Encode_Hash(string word)
{
var myHash=System.Text.Encoding.ASCII.GetBytes(word);
var mySHA=System.Security.Cryptography.SHA1.Create();
var myBytes=mySHA.ComputeHash(myHash);
var sb=new StringBuilder();
for (int i = 0; i < myBytes.Length; i++)
    {
        sb.Append(myBytes[i].ToString("X2"));
    }
return sb.ToString();
}
public static string Encode_MD5(string word)
{
var myHASH = System.Text.Encoding.ASCII.GetBytes(word);
var myMD5 = System.Security.Cryptography.MD5.Create();
var myBytes = myMD5.ComputeHash(myHASH);
var sb = new StringBuilder();
for (int i = 0; i < myBytes.Length; i++)
{
sb.Append(myBytes[i].ToString("X2"));
}
return sb.ToString();
}



Happy Coding :)


No comments:

Post a Comment