A simple C# code snippet to encode and decode a string using TripleDES.
public string Encode(string Key, string PlainText)
{
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
//mode of operation. there are other 4 modes. We choose ECB(Electronic code Book)
tdes.Key = GenerateKey(Key);
//padding mode(if any extra byte added)
tdes.Mode = CipherMode.ECB;
tdes.Padding = PaddingMode.PKCS7;
//transform the specified region of bytes array to resultArray
ICryptoTransform cTransform = tdes.CreateEncryptor();
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(PlainText);
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
//Release resources held by TripleDes Encryptor
tdes.Clear();
//Return the encrypted data into unreadable string format
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
public string Decode(string Key, string CypherText)
{
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
//set the secret key for the tripleDES algorithm
tdes.Key = GenerateKey(Key);
//mode of operation. there are other 4 modes. We choose ECB(Electronic code Book)
byte[] toEncryptArray = Convert.FromBase64String(CypherText);
tdes.Mode = CipherMode.ECB;
//padding mode(if any extra byte added)
tdes.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = tdes.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
//Release resources held by TripleDes Encryptor
tdes.Clear();
//return the Clear decrypted TEXT
return UTF8Encoding.UTF8.GetString(resultArray);
}
NOTE: This code will only work on small strings (not large files) as the data is read into memory and not streamed/buffered.