Skip to main content

Encryption Decryption Helper



Encryption Decryption Helper

public class clsEncryptionDecryption
{
#region Variable Declaration

private static string keyString = "keyString";

#endregion

#region Methods/Functions

/// <summary>
/// Get Encrpted Value of Passed value
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
/// <remarks></remarks>
public static string GetEncrypt(string value)
{
return Encrypt(keyString, value);
}

/// <summary>
/// Get Decrypted value of passed encrypted string
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
/// <remarks></remarks>
public static string GetDecrypt(string value)
{
return Decrypt(keyString, value);
}

/// <summary>
/// Encrypt value
/// </summary>
/// <param name="Passphrase"></param>
/// <param name="Message"></param>
/// <returns></returns>
/// <remarks></remarks>
private static string Encrypt(string Passphrase, string Message)
{
using (MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider())
{
byte[] Results;
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();

// Step 1. We hash the passphrase using MD5
// We use the MD5 hash generator as the result is a 128 bit byte array
// which is a valid length for the TripleDES encoder we use below

byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(Passphrase));
// Step 2. Create a new TripleDESCryptoServiceProvider object
using (TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider())
{

// Step 3. Setup the encoder
TDESAlgorithm.Key = TDESKey;
TDESAlgorithm.Mode = CipherMode.ECB;
TDESAlgorithm.Padding = PaddingMode.PKCS7;

// Step 4. Convert the input string to a byte[]
byte[] DataToEncrypt = UTF8.GetBytes(Message);

// Step 5. Attempt to encrypt the string
try
{
ICryptoTransform Encryptor = TDESAlgorithm.CreateEncryptor();
Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length);
}
finally
{
// Clear the TripleDes and Hashprovider services of any sensitive information
TDESAlgorithm.Clear();
HashProvider.Clear();
}

// Step 6. Return the encrypted string as a base64 encoded string
return Convert.ToBase64String(Results);
//}
//catch (Exception)
//{
// throw;
//}
}
}

}

/// <summary>
/// decrypt value
/// </summary>
/// <param name="Passphrase"></param>
/// <param name="Message"></param>
/// <returns></returns>
/// <remarks></remarks>
private static string Decrypt(string Passphrase, string Message)
{

if (string.IsNullOrEmpty(Message))
return string.Empty;

using (MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider())
{

byte[] Results;
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();

// Step 1. We hash the passphrase using MD5
// We use the MD5 hash generator as the result is a 128 bit byte array
// which is a valid length for the TripleDES encoder we use below

byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(Passphrase));

// Step 2. Create a new TripleDESCryptoServiceProvider object
using (TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider())
{

// Step 3. Setup the decoder
TDESAlgorithm.Key = TDESKey;
TDESAlgorithm.Mode = CipherMode.ECB;
TDESAlgorithm.Padding = PaddingMode.PKCS7;

Message = Message.Replace(" ", "+"); // Replace space with plus sign in encrypted value if any.- 

// Step 4. Convert the input string to a byte[]
byte[] DataToDecrypt = Convert.FromBase64String(Message);

// Step 5. Attempt to decrypt the string
try
{
ICryptoTransform Decryptor = TDESAlgorithm.CreateDecryptor();
Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length);
}
catch
{
return "";
}
finally
{
// Clear the TripleDes and Hashprovider services of any sensitive information
TDESAlgorithm.Clear();
HashProvider.Clear();
}

// Step 6. Return the decrypted string in UTF8 format
return UTF8.GetString(Results);
//}
//catch (Exception)
//{
// throw;
//}
}
}

}


#endregion

}


Comments

Popular posts from this blog

Message Helper for MVC Application

Message Helper for MVC Application public static class MessageExtensions { public enum MessageType { Success = 0, Info = 1, Warning = 2, Error = 3 } public static void ShowMessage( this Controller controller, MessageType messageType, string message, bool showAfterRedirect = false ) { string messageTypeKey = messageType.ToString(); if (showAfterRedirect) { controller.TempData[messageTypeKey] = message; } else { controller.ViewData[messageTypeKey] = message; } } public static HtmlString RenderMessages( this HtmlHelper htmlHelper, bool clearMessage = true ) { string messages = String .Empty; foreach ( string messageType in Enum .GetNames( t

Pass Values Between ASP.NET Web Pages without Session or any State Management

If the source page and target page are both ASP.NET Web pages in the same Web application, and if you transfer execution from the source page to the target page on the server by using the transfer method, the target page can access public properties in the source page. Page One <asp:TextBox ID="textCity" runat="server" Text="Brjesh"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />  public String CurrentCity         {             get             {                 return textCity.Text;             }         }         public List<String> Current         {             get             {                 return _Current;             }         }         private List<String> _Current = null;         protected void Page_Load(object sender, EventArgs e)         {             _Current = new List<String>();             _Current.Add("1

CRUD in EF

 public int Create(Users entity)         {             using (var context = new K305DataEntities())             {                 var newEntity = Mapper.Map<User>(entity);                             context.Users.Add(newEntity);                 context.SaveChanges();                 return newEntity.Id;             }         }         public int Update(Users entity)         {             using (var context = new K305DataEntities())             {                 var dbEntity = context.Users.FirstOrDefault(dc => dc.Id == entity.Id);                 if (dbEntity == null) throw new ApplicationException("Entity not found.");                 dbEntity.Name = entity.Name;                 context.SaveChanges();                 return dbEntity.Id;             }                 }         public List<Users> GetAll()         {             using (var context = new K305DataEntities())             {                 return context.Users.Select(