1 using System;
2 using System.Text;
3 using System.IO;
4 using System.Security.Cryptography;
5
6 namespace Logistics
7 {
8 /// <summary>
9 /// 字符串加密解密类
10 /// </summary>
11 public sealed class StringSecurity
12 {
13 private StringSecurity() { }
14
15 #region DES 加密/解密
16
17 private static byte[] key = ASCIIEncoding.ASCII.GetBytes("uiertysd");
18 private static byte[] iv = ASCIIEncoding.ASCII.GetBytes("99008855");
19
20 /// <summary>
21 /// DES加密。
22 /// </summary>
23 /// <param name="inputString">输入字符串。</param>
24 /// <returns>加密后的字符串。</returns>
25 public static string DESEncrypt(string inputString)
26 {
27 MemoryStream ms = null;
28 CryptoStream cs = null;
29 StreamWriter sw = null;
30
31 DESCryptoServiceProvider des = new DESCryptoServiceProvider();
32 try
33 {
34 ms = new MemoryStream();
35 cs = new CryptoStream(ms, des.CreateEncryptor(key, iv), CryptoStreamMode.Write);
36 sw = new StreamWriter(cs);
37 sw.Write(inputString);
38 sw.Flush();
39 cs.FlushFinalBlock();
40 return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
41 }
42 finally
43 {
44 if (sw != null) sw.Close();
45 if (cs != null) cs.Close();
46 if (ms != null) ms.Close();
47 }
48 }
49
50 /// <summary>
51 /// DES解密。
52 /// </summary>
53 /// <param name="inputString">输入字符串。</param>
54 /// <returns>解密后的字符串。</returns>
55 public static string DESDecrypt(string inputString)
56 {
57 MemoryStream ms = null;
58 CryptoStream cs = null;
59 StreamReader sr = null;
60
61 DESCryptoServiceProvider des = new DESCryptoServiceProvider();
62 try
63 {
64 ms = new MemoryStream(Convert.FromBase64String(inputString));
65 cs = new CryptoStream(ms, des.CreateDecryptor(key, iv), CryptoStreamMode.Read);
66 sr = new StreamReader(cs);
67 return sr.ReadToEnd();
68 }
69 finally
70 {
71 if (sr != null) sr.Close();
72 if (cs != null) cs.Close();
73 if (ms != null) ms.Close();
74 }
75 }
76
77 #endregion
78 }
79 }