Code
该代码大体上参考DESCryptoServiceProvider类的构造函数代码示例,有部分改动.

1 /// <summary>
2 /// 加密字符串
3 /// </summary>
4 /// <param name="encryptText">需加密的字符串</param>
5 /// <returns>加密后的字符串</returns>
6 public static string Encrypt(string encryptText)
7 {
8 //创建流
9 MemoryStream ms = new MemoryStream();
10
11 DESCryptoServiceProvider key = new DESCryptoServiceProvider();
12
13 //创建CryptoStream流对象关联MemoryStream流
14 CryptoStream encStream = new CryptoStream(ms, key.CreateEncryptor(Keys, Encoding.UTF8.GetBytes(EncryptKey)), CryptoStreamMode.Write);
15
16 //创建StreamWriter对象将字符串写到流中
17 StreamWriter sw = new StreamWriter(encStream);
18
19 //将字符串写到流中
20 sw.WriteLine(encryptText);
21
22 //关闭StreamWriter和CryptoStream流.
23 sw.Close();
24 encStream.Close();
25
26 //从写入的流中获取字节数组
27 //byte[] buffer = ms.ToArray();
28
29
30 string str = Convert.ToBase64String(ms.ToArray());
31
32 //关闭MemoryStream流
33 ms.Close();
34
35 //返回加密后的字符串
36 return str;
37 }
38
39
40
41 /// <summary>
42 /// 将字节数组解密成字符串
43 /// </summary>
44 /// <param name="decryptBytes">加密后的字符串</param>
45 /// <returns>解密后的字符串</returns>
46 public static string Decrypt(string decryptString)
47 {
48
49 byte[] decryptBytes = Convert.FromBase64String(decryptString);
50
51 //创建流
52 MemoryStream ms = new MemoryStream(decryptBytes);
53
54
55 DESCryptoServiceProvider key = new DESCryptoServiceProvider();
56
57
58 //创建CryptoStream流对象关联MemoryStream流
59 CryptoStream encStream = new CryptoStream(ms, key.CreateDecryptor(Keys, Encoding.UTF8.GetBytes(EncryptKey)), CryptoStreamMode.Read);
60
61 //创建读取流对象
62 StreamReader sr = new StreamReader(encStream);
63
64 //返回读取的字符串
65 string val = sr.ReadToEnd();
66
67 //关闭相关流
68 sr.Close();
69 encStream.Close();
70 ms.Close();
71 return val;
72 }