ASP.NET加密算法(MD5/DES)_[Asp.Net教程]
					本文讲 ASP.NET的MD5和DES加密和解密算法
#region MD5算法
 public string md5(string str, int code)
 {
 if (code == 16) //16位MD5加密(取32位加密的9~25字符) 
 {
 return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
 }
 if (code == 32) //32位加密 
 {
 return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
 }
 return "00000000000000000000000000000000";
 }
 #endregion
 #region DESEncrypt DES加密
 // 
 /// 进行DES加密。
 /// 
 /// 要加密的字符串。
 /// 密钥,且必须为8位。
 /// 以Base64格式返回的加密字符串。
 public string DESEncrypt(string pToEncrypt, string sKey)
 {
 using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
 {
 byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);
 des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
 des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
 System.IO.MemoryStream ms = new System.IO.MemoryStream();
 using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
 {
 cs.Write(inputByteArray, 0, inputByteArray.Length);
 cs.FlushFinalBlock();
 cs.Close();
 }
 string str = Convert.ToBase64String(ms.ToArray());
 ms.Close();
 return str;
 }
 }
 #endregion
 #region DESDecrypt DES解密
 /// 
 /// 进行DES解密。
 /// 
 /// 要解密的以Base64
 /// 密钥,且必须为8位。
 /// 已解密的字符串。
 public string DESDecrypt(string pToDecrypt, string sKey)
 {
 byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);
 using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
 {
 des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
 des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
 System.IO.MemoryStream ms = new System.IO.MemoryStream();
 using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
 {
 cs.Write(inputByteArray, 0, inputByteArray.Length);
 cs.FlushFinalBlock();
 cs.Close();
 }
 string str = Encoding.UTF8.GetString(ms.ToArray());
 ms.Close();
 return str;
 }
 }
 #endregion
来源:http://www.cnblogs.com/hakuci