Click here to Skip to main content
6,629,377 members and growing! (18,513 online)
Email Password   helpLost your password?
General Programming » Cryptography & Security » Encryption License: The Code Project Open License (CPOL)

Simple String Encryption and Decryption with Source Code

By Lovely M

Sample program for simple encryption and decryption of strings
C#
Version:3 (See All)
Posted:20 Feb 2008
Updated:21 Feb 2008
Views:28,447
Bookmarked:26 times
Announcements
Loading...
 
Search    
Advanced Search
Add to IE Search
printPrint   add Share
      Discuss Discuss   Broken Article?Report  
15 votes for this article.
Popularity: 4.00 Rating: 3.40 out of 5
2 votes, 13.3%
1

2

3
4 votes, 26.7%
4
9 votes, 60.0%
5

Introduction

This article helps the C# beginners to do simple encryption and decryption of strings. It will be useful for simple password encryption or any such string encryption.

Encryption using the default key:

Encryption1.jpg

Encryption using the user's custom key:

Encryption.jpg

Decryption using the user's custom key:

Using the Code

The demo application uses a class SSTCryptographer which contains two static overloaded methods and a static property. 

How To Use the Given Code

On Button clicks:

private void btnEncrypt_Click(object sender, EventArgs e)
{ 
txtOutputText.Text = SSTCryptographer.Encrypt(txtInputText.Text,SetKey());
}
private void btnDecrypt_Click(object sender, EventArgs e)
{
txtOutputText.Text = SSTCryptographer.Decrypt(txtInputText.Text,SetKey());
}

/// <summary>
/// Encrypt the given string using the default key.
/// </summary>
/// <param name="strToEncrypt">The string to be encrypted.</param>
/// <returns>The encrypted string.</returns>
public static string Encrypt(string strToEncrypt)
{
    try
    {
        return Encrypt(strToEncrypt, _key);
    }

    catch (Exception ex)
    {
        return "Wrong Input. " + ex.Message;
    }
} 

/// <summary>
/// Decrypt the given string using the default key.
/// </summary>
/// <param name="strEncrypted">The string to be decrypted.</param>
/// <returns>The decrypted string.</returns>
public static string Decrypt(string strEncrypted)
{
    try
    {
        return Decrypt(strEncrypted, _key);
    }
    catch (Exception ex)
    {
        return "Wrong Input. " + ex.Message;
    }
}

/// <summary>
/// Encrypt the given string using the specified key.
/// </summary>
/// <param name="strToEncrypt">The string to be encrypted.</param>
/// <param name="strKey">The encryption key.</param>
/// <returns>The encrypted string.</returns>
public static string Encrypt(string strToEncrypt, string strKey)
{
    try
    {
        TripleDESCryptoServiceProvider objDESCrypto = 
			new TripleDESCryptoServiceProvider();
        MD5CryptoServiceProvider objHashMD5 = new MD5CryptoServiceProvider();
        byte[] byteHash, byteBuff;
        string strTempKey = strKey;
        byteHash = objHashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(strTempKey));
        objHashMD5 = null;
        objDESCrypto.Key = byteHash;
        objDESCrypto.Mode = CipherMode.ECB; //CBC, CFB
        byteBuff = ASCIIEncoding.ASCII.GetBytes(strToEncrypt);
        return Convert.ToBase64String(objDESCrypto.CreateEncryptor().
			TransformFinalBlock(byteBuff, 0, byteBuff.Length));
    }
    catch (Exception ex)
    {
        return "Wrong Input. " + ex.Message;
    }
}

/// <summary>
/// Decrypt the given string using the specified key.
/// </summary>
/// <param name="strEncrypted">The string to be decrypted.</param>
/// <param name="strKey">The decryption key.</param>
/// <returns>The decrypted string.</returns>
public static string Decrypt(string strEncrypted, string strKey)
{
    try
    {
        TripleDESCryptoServiceProvider objDESCrypto = 
			new TripleDESCryptoServiceProvider();
        MD5CryptoServiceProvider objHashMD5 = new MD5CryptoServiceProvider();
        byte[] byteHash, byteBuff;
        string strTempKey = strKey;
        byteHash = objHashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(strTempKey));
        objHashMD5 = null;
        objDESCrypto.Key = byteHash;
        objDESCrypto.Mode = CipherMode.ECB; //CBC, CFB
        byteBuff = Convert.FromBase64String(strEncrypted);
        string strDecrypted = ASCIIEncoding.ASCII.GetString
		(objDESCrypto.CreateDecryptor().TransformFinalBlock
		(byteBuff, 0, byteBuff.Length));
        objDESCrypto = null;
        return strDecrypted;
    }
    catch (Exception ex)
    {
        return "Wrong Input. " + ex.Message;
    }
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Lovely M


Member
Lovely Manuel
Santhisoft Technologies

Website Template, Simple POS Software, Personal Accounting Software, Video Rental Software, Time Table Software
Tutorials
VC++ Tutorials, C#.Net Tutorials, VB.Net Tutorials
Occupation: Software Developer
Company: Santhisoft Technologies
Location: India India

Other popular Cryptography & Security articles:

Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
 Msgs 1 to 15 of 15 (Total in Forum: 15) (Refresh)FirstPrevNext
GeneralThanks PinmemberMushtaque Nizamani21:20 7 May '09  
GeneralRe: Thanks PinmemberLovely M22:48 7 May '09  
Questionqusetuion Pinmembermarzieh minooyee21:41 19 Dec '08  
AnswerRe: qusetuion PinmemberLovely M18:53 21 Dec '08  
GeneralString reference not set to an instance of String PinmemberAsanda2:48 8 Sep '08  
GeneralRe: String reference not set to an instance of String PinmemberLovely M19:37 8 Sep '08  
GeneralRe: String reference not set to an instance of String PinmemberAsanda3:46 9 Sep '08  
GeneralRe: String reference not set to an instance of String PinmemberLovely M19:35 9 Sep '08  
GeneralThanks! Thank You! And More Thanks! Pinmembermicrobus12:13 22 Jul '08  
GeneralThanks a lot PinmemberAbhi suryawanshi22:35 4 Jul '08  
QuestionInvalid length for a Base-64 char array. Pinmembermoistllama5:30 20 Mar '08  
AnswerRe: Invalid length for a Base-64 char array. PinmemberAmar Chaudhary21:34 29 Apr '08  
GeneralHow to decrypt an encrypted string using MD5 algorithm PinmemberMember 277185118:58 22 Feb '08  
GeneralNice article PinmemberRajib Ahmed10:13 20 Feb '08  
GeneralRe: Nice article [modified] PinmemberLovely M10:55 20 Feb '08  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 21 Feb 2008
Editor: Deeksha Shenoy
Copyright 2008 by Lovely M
Everything else Copyright © CodeProject, 1999-2009
Web22 | Advertise on the Code Project