最近项目中用到的加密方式

  1  public class DesEncrypt
  2     {
  3         private static readonly byte[] _Key = ASCIIEncoding.ASCII.GetBytes("MDAPPDES");
  4         private static readonly string _MD5_Key = "MDAPPMD5";
  5 
  6         /// <summary>
  7         /// DES加密字符串
  8         /// </summary>
  9         /// <param name="encryptString">待加密的字符串</param>
 10         /// <param name="Key">密钥</param>
 11         /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
 12         public static string EncryptDES(string encryptString)
 13         {
 14             try
 15             {
 16                 byte[] Key = _Key;
 17                 byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
 18                 DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 19                 des.Key = Key;
 20                 des.Mode = CipherMode.ECB;
 21                 MemoryStream mStream = new MemoryStream();
 22                 CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(), CryptoStreamMode.Write);
 23                 cStream.Write(inputByteArray, 0, inputByteArray.Length);
 24                 cStream.FlushFinalBlock();
 25                 return Convert.ToBase64String(mStream.ToArray());
 26             }
 27             catch
 28             {
 29                 throw;
 30             }
 31         }
 32 
 33         /// <summary>
 34         /// DES解密字符串
 35         /// </summary>
 36         /// <param name="decryptString">待解密的字符串</param>
 37         /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
 38         public static string DecryptDES(string decryptString)
 39         {
 40             try
 41             {
 42                 byte[] Key = _Key;
 43                 byte[] inputByteArray = Convert.FromBase64String(decryptString);
 44                 DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 45                 des.Key = Key;
 46                 des.Mode = CipherMode.ECB;
 47                 MemoryStream mStream = new MemoryStream();
 48                 CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(), CryptoStreamMode.Write);
 49                 cStream.Write(inputByteArray, 0, inputByteArray.Length);
 50                 cStream.FlushFinalBlock();
 51                 return Encoding.UTF8.GetString(mStream.ToArray());
 52             }
 53             catch
 54             {
 55                 throw;
 56             }
 57         }
 58 
 59         ///MD5加密
 60         public static string EncryptMD5(string pToEncrypt)
 61         {
 62             DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 63             byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
 64             des.Key = ASCIIEncoding.ASCII.GetBytes(_MD5_Key);
 65             des.IV = ASCIIEncoding.ASCII.GetBytes(_MD5_Key);
 66             MemoryStream ms = new MemoryStream();
 67             CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
 68             cs.Write(inputByteArray, 0, inputByteArray.Length);
 69             cs.FlushFinalBlock();
 70             StringBuilder ret = new StringBuilder();
 71             foreach (byte b in ms.ToArray())
 72             {
 73                 ret.AppendFormat("{0:X2}", b);
 74             }
 75             ret.ToString();
 76             return ret.ToString();
 77 
 78 
 79         }
 80 
 81         ///MD5解密
 82         public static string DecryptMD5(string pToDecrypt)
 83         {
 84             DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 85 
 86             byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
 87             for (int x = 0; x < pToDecrypt.Length / 2; x++)
 88             {
 89                 int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
 90                 inputByteArray[x] = (byte)i;
 91             }
 92 
 93             des.Key = ASCIIEncoding.ASCII.GetBytes(_MD5_Key);
 94             des.IV = ASCIIEncoding.ASCII.GetBytes(_MD5_Key);
 95             MemoryStream ms = new MemoryStream();
 96             CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
 97             cs.Write(inputByteArray, 0, inputByteArray.Length);
 98             cs.FlushFinalBlock();
 99 
100             StringBuilder ret = new StringBuilder();
101 
102             return System.Text.Encoding.Default.GetString(ms.ToArray());
103         }
104 
105         /// <summary>
106         /// 使用HASH算法加密, 无法解密
107         /// </summary>
108         /// <param name="key"></param>
109         /// <returns></returns>
110         public static string DecryptHASH(string value)
111         {
112             byte[] StrRes = Encoding.Default.GetBytes(value);
113             HashAlgorithm iSHA = new SHA1CryptoServiceProvider();
114             StrRes = iSHA.ComputeHash(StrRes);
115             StringBuilder EnText = new StringBuilder();
116             foreach (byte iByte in StrRes)
117             {
118                 EnText.AppendFormat("{0:x2}", iByte);
119             }
120             return EnText.ToString();
121         }
122 
123         /// <summary>
124         /// 加密
125         /// </summary>
126         /// <param name="encryptString"></param>
127         /// <returns></returns>
128         public static string Base64Encode(string encryptString)
129         {
130             byte[] encbuff = System.Text.Encoding.UTF8.GetBytes(encryptString);
131             return Convert.ToBase64String(encbuff);
132         }
133         /// <summary>
134         /// 解密
135         /// </summary>
136         /// <param name="decryptString"></param>
137         /// <returns></returns>
138         public static string Base64Decode(string decryptString)
139         {
140             byte[] decbuff = Convert.FromBase64String(decryptString);
141             return System.Text.Encoding.UTF8.GetString(decbuff);
142         }
143     }

请方家指教!!!

posted @ 2012-07-04 11:07  飞翔的青春  阅读(145)  评论(0)    收藏  举报