Click here to Skip to main content
Licence CPOL
First Posted 20 Feb 2008
Views 64,012
Downloads 1,451
Bookmarked 34 times

Simple String Encryption and Decryption with Source Code

By Lovely M | 21 Feb 2008
C#
Sample program for simple encryption and decryption of strings
2 votes, 9.5%
1

2

3
5 votes, 23.8%
4
14 votes, 66.7%
5
4.68/5 - 21 votes
2 removed
μ 3.61, σa 2.15 [?]

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

Software Developer
Santhisoft Technologies
India India

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

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
QuestionCharacter sets PinmemberMark Roebuck3:32 3 Sep '11  
AnswerRe: Character sets Pinmemberglennswest0:48 7 Oct '11  
GeneralI want to use my code for encrypt PinmemberMayur Gujrathiii23:00 26 May '11  
QuestionENCRYPT AND DECRYPT HELP Pinmemberrsdelrosario23:58 28 Jul '10  
QuestionRe: ENCRYPT AND DECRYPT HELP Pinmemberrsdelrosario0:04 29 Jul '10  
GeneralHELPPPPPPPPPPPPPP Pinmemberbarbiez9:14 23 May '10  
GeneralRe: HELPPPPPPPPPPPPPP PinmemberLovely M19:14 23 May '10  
GeneralThanks PinmemberMushtaque Nizamani21:20 7 May '09  
GeneralRe: Thanks PinmemberLovely M22:48 7 May '09  
QuestionMessage Removed 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  
Please Try again as I think you are pressing wrong buttons at wrong time
 
It is Good to be Important but!
it is more Important to be Good

QuestionHow 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    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web03 | 2.5.120210.1 | Last Updated 21 Feb 2008
Article Copyright 2008 by Lovely M
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid