C# DES加密+解密

  1 #region ===========================DES算法===================================
  2        
  3         private static string key = "key";
  4         /// <summary>
  5         /// 默认加密方法
  6         /// </summary>
  7         /// <param name="text"></param>
  8         /// <returns></returns>
  9         public static string DESEncrypt(string text)
 10         {
 11             return DESEncrypt(text, key);
 12         }
 13         /// <summary>
 14         /// DES加密方法
 15         /// </summary>
 16         /// <param name="text">明文</param>
 17         /// <param name="sKey">密钥</param>
 18         /// <returns>加密后的密文</returns>
 19         public static string DESEncrypt(string text,string sKey)
 20         {
 21             DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 22             byte[] inputByteArray;
 23             inputByteArray = Encoding.Default.GetBytes(text);
 24             des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
 25             des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
 26             System.IO.MemoryStream ms = new System.IO.MemoryStream();
 27             CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
 28             cs.Write(inputByteArray, 0, inputByteArray.Length);
 29             cs.FlushFinalBlock();
 30             StringBuilder ret = new StringBuilder();
 31             foreach (byte b in ms.ToArray())
 32             {
 33                 ret.AppendFormat("{0:X2}", b);
 34             }
 35             ms.Dispose();
 36             cs.Dispose();
 37             return ret.ToString();
 38 
 39         }
 40         /// <summary>
 41         /// DES解密方法,默认方法
 42         /// </summary>
 43         /// <param name="text">待加密明文</param>
 44         /// <returns>加密后的密文</returns>
 45         public static string DESDecrypt(string text)
 46         {
 47             return DESDecrypt(text,key);
 48         }
 49         /// <summary>
 50         /// DES解密方法
 51         /// </summary>
 52         /// <param name="text">密文</param>
 53         /// <param name="sKey">密钥</param>
 54         /// <returns>解密后的明文</returns>
 55         public static string DESDecrypt(string text,string sKey)
 56         {
 57             DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 58             int len;
 59             len = text.Length / 2;
 60             byte[] inputByteArray = new byte[len];
 61             int x, i;
 62             for (x = 0; x < len; x++)
 63             {
 64                 i = Convert.ToInt32(text.Substring(x * 2, 2), 16);
 65                 inputByteArray[x] = (byte)i;
 66             }
 67             try
 68             {
 69                 des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
 70                 des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
 71                 System.IO.MemoryStream ms = new System.IO.MemoryStream();
 72                 CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
 73                 cs.Write(inputByteArray, 0, inputByteArray.Length);
 74                 cs.FlushFinalBlock();
 75                 string estring = Encoding.Default.GetString(ms.ToArray());
 76                 ms.Dispose();
 77                 cs.Dispose();
 78                 return estring;
 79             }
 80             catch
 81             {
 82                 return "";
 83             }
 84 
 85         } 
 86         #endregion
 87 
 88         #region ==============================MD5算法==================================
 89         /// <summary>
 90         /// 使用MD5算法求Hash散列
 91         /// </summary>
 92         /// <param name="text">明文</param>
 93         /// <returns>散列值</returns>
 94         public static string MD5Encrypt(string text)
 95         {
 96             return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(text, "MD5");
 97         } 
 98         #endregion============================================================
 99 
100 
101         #region =============================SHA1==============================
102 
103         /// <summary>
104         /// 使用SHA1算法求Hash散列
105         /// </summary>
106         /// <param name="text">明文</param>
107         /// <returns>散列值</returns>
108         public static string SHA1Encrypt(string text)
109         {
110             return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(text, "SHA1");
111         } 
112         #endregion=============================================================
113 
114 
115 
116     }
原文地址:https://www.cnblogs.com/LYshuqian/p/2919152.html