1 public static string _KEY = "HQDCKEY1"; //密钥
2 public static string _IV = "HQDCKEY2"; //向量
3
4 /// <summary>
5 /// DES加密
6 /// </summary>
7 /// <param name="data"></param>
8 /// <returns></returns>
9 public static string Encode(string data)
10 {
11
12 byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(_KEY);
13 byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(_IV);
14
15 DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
16 int i = cryptoProvider.KeySize;
17 MemoryStream ms = new MemoryStream();
18 CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
19
20 StreamWriter sw = new StreamWriter(cst);
21 sw.Write(data);
22 sw.Flush();
23 cst.FlushFinalBlock();
24 sw.Flush();
25
26 string strRet = Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
27 return strRet;
28 }
29
30 /// <summary>
31 /// DES解密
32 /// </summary>
33 /// <param name="data"></param>
34 /// <returns></returns>
35 public static string Decode(string data)
36 {
37
38 byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(_KEY);
39 byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(_IV);
40
41 byte[] byEnc;
42
43 try
44 {
45 data.Replace("_%_", "/");
46 data.Replace("-%-", "#");
47 byEnc = Convert.FromBase64String(data);
48
49 }
50 catch
51 {
52 return null;
53 }
54
55 DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
56 MemoryStream ms = new MemoryStream(byEnc);
57 CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
58 StreamReader sr = new StreamReader(cst);
59 return sr.ReadToEnd();
60 }