C#加密解密方法

DES加密/解密类 DESEncrypt帮助类库 

主要功能:
1,DES加密数据

2,DES解密数据


using System;
using System.Security.Cryptography;  
using System.Text;
namespace json.Utilities
{
      /// <summary>
      /// DES加密/解密类。
      /// </summary>
      public class DESEncrypt
      {
            public DESEncrypt()
            {                 
            }
  
            #region ========加密======== 
   
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="Text"></param>
        /// <returns></returns>
            public static string Encrypt(string Text) 
            {
                  return Encrypt(Text,"MATICSOFT");
            }
            /// <summary> 
            /// 加密数据 
            /// </summary> 
            /// <param name="Text"></param> 
            /// <param name="sKey"></param> 
            /// <returns></returns> 
            public static string Encrypt(string Text,string sKey) 
            { 
                  DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 
                  byte[] inputByteArray; 
                  inputByteArray=Encoding.Default.GetBytes(Text); 
                  des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
                  des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
                  System.IO.MemoryStream ms=new System.IO.MemoryStream(); 
                  CryptoStream cs=new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write); 
                  cs.Write(inputByteArray,0,inputByteArray.Length); 
                  cs.FlushFinalBlock(); 
                  StringBuilder ret=new StringBuilder(); 
                  foreach( byte b in ms.ToArray()) 
                  { 
                        ret.AppendFormat("{0:X2}",b); 
                  } 
                  return ret.ToString(); 
            } 
  
            #endregion
              
            #region ========解密======== 
     
   
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="Text"></param>
        /// <returns></returns>
            public static string Decrypt(string Text) 
            {
                  return Decrypt(Text,"MATICSOFT");
            }
            /// <summary> 
            /// 解密数据 
            /// </summary> 
            /// <param name="Text"></param> 
            /// <param name="sKey"></param> 
            /// <returns></returns> 
            public static string Decrypt(string Text,string sKey) 
            { 
                  DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 
                  int len; 
                  len=Text.Length/2; 
                  byte[] inputByteArray = new byte[len]; 
                  int x,i; 
                  for(x=0;x<len;x++) 
                  { 
                        i = Convert.ToInt32(Text.Substring(x * 2, 2), 16); 
                        inputByteArray[x]=(byte)i; 
                  } 
                  des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
                  des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
                  System.IO.MemoryStream ms=new System.IO.MemoryStream(); 
                  CryptoStream cs=new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write); 
                  cs.Write(inputByteArray,0,inputByteArray.Length); 
                  cs.FlushFinalBlock(); 
                  return Encoding.Default.GetString(ms.ToArray()); 
            } 
            #endregion 
      }
}