tusharkaushik -
You could add something like this to an existing class:
public static byte[] GetHashKey(string hashKey)
{
UTF8Encoding encoder = new UTF8Encoding();
string salt = !string.IsNullOrEmpty(Salt) ? Salt : "I am a nice little salt";
byte[] saltBytes = encoder.GetBytes(salt);
Rfc2898DeriveBytes rfc = new Rfc2898DeriveBytes(hashKey, saltBytes);
return rfc.GetBytes(16);
}
public static string Encrypt(byte[] key, string dataToEncrypt)
{
AesManaged encryptor = new AesManaged();
encryptor.Key = key;
encryptor.IV = key;
using (MemoryStream encryptionStream = new MemoryStream())
{
using (CryptoStream encrypt = new CryptoStream(encryptionStream, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
{
byte[] utfD1 = UTF8Encoding.UTF8.GetBytes(dataToEncrypt);
encrypt.Write(utfD1, 0, utfD1.Length);
encrypt.FlushFinalBlock();
encrypt.Close();
return Convert.ToBase64String(encryptionStream.ToArray());
}
}
}
public static string Decrypt(byte[] key, string encryptedString)
{
AesManaged decryptor = new AesManaged();
byte[] encryptedData = Convert.FromBase64String(encryptedString);
decryptor.Key = key;
decryptor.IV = key;
using (MemoryStream decryptionStream = new MemoryStream())
{
using (CryptoStream decrypt = new CryptoStream(decryptionStream, decryptor.CreateDecryptor(), CryptoStreamMode.Write))
{
decrypt.Write(encryptedData, 0, encryptedData.Length);
decrypt.Flush();
decrypt.Close();
byte[] decryptedData = decryptionStream.ToArray();
return UTF8Encoding.UTF8.GetString(decryptedData, 0, decryptedData.Length);
}
}
}