using System; using System.Security.Cryptography; using System.Text; namespace Common { public static class EncryptionHelper { private const string cryptoKey = "cryptoKey"; // The Initialization Vector for the DES encryption routine private static readonly byte[] IV = new byte[8] { 240, 3, 45, 29, 0, 76, 173, 59 }; /// <summary> /// Encrypts provided string parameter /// </summary> public static string Encrypt(string s) { if (s == null || s.Length == 0) return string.Empty; string result = string.Empty; try { byte[] buffer = Encoding.ASCII.GetBytes(s); TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider(); des.Key = MD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(cryptoKey)); des.IV = IV; result = Convert.ToBase64String( des.CreateEncryptor().TransformFinalBlock( buffer, 0, buffer.Length)); } catch { throw; } return result; } /// <summary> /// Decrypts provided string parameter /// </summary> public static string Decrypt(string s) { if (s == null || s.Length == 0) return string.Empty; string result = string.Empty; try { byte[] buffer = Convert.FromBase64String(s); TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider(); des.Key = MD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(cryptoKey)); des.IV = IV; result = Encoding.ASCII.GetString( des.CreateDecryptor().TransformFinalBlock( buffer, 0, buffer.Length)); } catch { throw; } return result; } } }
2012年1月12日 星期四
C# Encryption / Decryption Helper Class
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言