1 using System;
2 using System.IO;
3 using System.Text;
4 using System.Diagnostics;
5 using System.Web.Security;
6 using System.Security;
7 using System.Security.Cryptography;
8 using System.Web;
9 using System.Web.UI;
10 using System.Web.UI.WebControls;
11
12 namespace ASPNET3DBBook
13 {
14 public class EncryptString
15 { ///定义64位和192位的Kev和IV
16 private static byte[] Key64 = {42, 16, 93, 156, 78, 4, 218, 32};
17 private static byte[] IV64 = {55, 103, 246, 79, 36, 99, 167, 3};
18 private static byte[] Key192 = {42, 16, 93, 156, 78, 4, 218, 32,15, 167, 44, 80, 26, 250, 155, 112,2, 94, 11, 204, 119, 35, 184, 197};
19 private static byte[] IV192 = {55, 103, 246, 79, 36, 99, 167, 3,42, 5, 62, 83, 184, 7, 209, 13,145, 23, 200, 58, 173, 10, 121, 222};
20
21 /// <summary>
22 /// 加密字符串
23 /// </summary>
24 /// <param name="valueString"></param>
25 /// <returns></returns>
26 public static String Encrypt(String valueString)
27 {
28 if(valueString != "")
29 { ///创建加密的provider
30 DESCryptoServiceProvider desprovider = new DESCryptoServiceProvider();
31 ///创建加密的流
32 MemoryStream memoryStream = new MemoryStream();
33 CryptoStream cryptoStream = new CryptoStream(memoryStream,desprovider.CreateEncryptor
34
35 (Key64,IV64),CryptoStreamMode.Write);
36 StreamWriter writerStream = new StreamWriter(cryptoStream);
37 ///加密给定的字符串
38 writerStream.Write(valueString);
39 writerStream.Flush();
40 cryptoStream.FlushFinalBlock();
41 ///返回加密后的字符串
42 memoryStream.Flush();
43 return(Convert.ToBase64String(memoryStream.GetBuffer(),0,(int)memoryStream.Length));
44 }
45 return(null);
46 }
47
48 /// <summary>
49 /// 解密字符串
50 /// </summary>
51 /// <param name="valueString"></param>
52 /// <returns></returns>
53 public static String Decrypt(String valueString)
54 {
55 if(valueString != "")
56 { ///创建解密的provider
57 DESCryptoServiceProvider desprovider = new DESCryptoServiceProvider();
58 byte[] buffer = Convert.FromBase64String(valueString);
59 MemoryStream memoryStream = new MemoryStream();
60 ///解密给定的字符串
61 CryptoStream cryptoStream = new CryptoStream(memoryStream,desprovider.CreateEncryptor
62
63 (Key64,IV64),CryptoStreamMode.Read);
64 StreamReader readerStream = new StreamReader(cryptoStream);
65 return(readerStream.ReadToEnd());
66 }
67 return(null);
68 }
69
70 /// <summary>
71 /// DES加密方法
72 /// </summary>
73 /// <param name="valueString"></param>
74 /// <returns></returns>
75 public static String EncryptTripleDES(String valueString)
76 {
77 if(valueString != "")
78 {
79
80 ///创建加密的provider
81 TripleDESCryptoServiceProvider triprovider = new TripleDESCryptoServiceProvider();
82 ///创建加密的流
83 MemoryStream memoryStream = new MemoryStream();
84 CryptoStream cryptoStream = new CryptoStream(memoryStream,triprovider.CreateEncryptor
85
86 (Key192,IV192),CryptoStreamMode.Write);
87 StreamWriter writerStream = new StreamWriter(cryptoStream);
88 ///加密给定的字符串
89 writerStream.Write(valueString);
90 writerStream.Flush();
91 cryptoStream.FlushFinalBlock();
92 ///返回加密后的字符串
93 memoryStream.Flush();
94 return(Convert.ToBase64String(memoryStream.GetBuffer(),0,(int)memoryStream.Length));
95 }
96 return(null);
97 }
98
99 /// <summary>
100 /// DES解密方法
101 /// </summary>
102 /// <param name="valueString"></param>
103 /// <returns></returns>
104 public static String DecryptTripleDES(String valueString)
105 {
106 if(valueString != "")
107 { ///创建加密的provider
108 TripleDESCryptoServiceProvider triprovider = new TripleDESCryptoServiceProvider();
109 ///创建加密的流
110 byte[] buffer = Convert.FromBase64String(valueString);
111 MemoryStream memoryStream = new MemoryStream();
112 CryptoStream cryptoStream = new CryptoStream(memoryStream,triprovider.CreateEncryptor
113
114 (Key192,IV192),CryptoStreamMode.Read);
115 StreamReader readerStream = new StreamReader(cryptoStream);
116 return(readerStream.ReadToEnd());
117 }
118 return(null);
119 }
120 }
121
122 public class CookieEncrypt
123 {
124 /// <summary>
125 /// 设置Cookie
126 /// </summary>
127 /// <param name="cookie"></param>
128 public static void SetCookie(HttpCookie cookie)
129 {
130 HttpContext.Current.Response.Cookies.Set(cookie);
131 }
132
133 /// <summary>
134 /// 设置Cookie
135 /// </summary>
136 /// <param name="key"></param>
137 /// <param name="valueString"></param>
138 public static void SetCookie(String key,String valueString)
139 { ///获取关键字和值
140 key = HttpContext.Current.Server.UrlEncode(key);
141 valueString = HttpContext.Current.Server.UrlEncode(valueString);
142 ///设置Cookie
143 HttpCookie cookie = new HttpCookie(key,valueString);
144 SetCookie(cookie);
145 }
146
147 /// <summary>
148 /// 设置Cookie
149 /// </summary>
150 /// <param name="key"></param>
151 /// <param name="valueString"></param>
152 /// <param name="expires"></param>
153 public static void SetCookie(String key,String valueString,DateTime expires)
154 { ///获取关键字和值
155 key = HttpContext.Current.Server.UrlEncode(key);
156 valueString = HttpContext.Current.Server.UrlEncode(valueString);
157 ///设置Cookie
158 HttpCookie cookie = new HttpCookie(key,valueString);
159 cookie.Expires = expires;
160 SetCookie(cookie);
161 }
162
163 /// <summary>
164 /// 设置使用DES方法加密之后的Cookie
165 /// </summary>
166 /// <param name="key"></param>
167 /// <param name="valueString"></param>
168 public static void SetTripleDESEncryptedCookie(String key,String valueString)
169 {
170
171 ///获取关键字和值
172 key = EncryptString.EncryptTripleDES(key);
173 valueString = EncryptString.EncryptTripleDES(valueString);
174 ///设置Cookie
175 SetCookie(key,valueString);
176 }
177
178 /// <summary>
179 /// 设置使用DES方法加密之后的Cookie
180 /// </summary>
181 /// <param name="key"></param>
182 /// <param name="valueString"></param>
183 /// <param name="expires"></param>
184 public static void SetTripleDESEncryptedCookie(String key,String valueString,DateTime expires)
185 {
186
187 ///获取关键字和值
188 key = EncryptString.EncryptTripleDES(key);
189 valueString = EncryptString.EncryptTripleDES(valueString);
190 ///设置Cookie
191 SetCookie(key,valueString,expires);
192 }
193
194 /// <summary>
195 /// 设置加密之后的Cookie
196 /// </summary>
197 /// <param name="key"></param>
198 /// <param name="valueString"></param>
199 public static void SetEncryptedCookie(String key,String valueString)
200 { ///获取关键字和值
201 key = EncryptString.Encrypt(key);
202 valueString = EncryptString.Encrypt(valueString);
203 ///设置Cookie
204 SetCookie(key,valueString);
205 }
206
207 /// <summary>
208 /// 设置加密之后的Cookie
209 /// </summary>
210 /// <param name="key"></param>
211 /// <param name="valueString"></param>
212 /// <param name="expires"></param>
213 public static void SetEncryptedCookie(String key,String valueString,DateTime expires)
214 {
215
216 ///获取关键字和值
217 key = EncryptString.Encrypt(key);
218 valueString = EncryptString.Encrypt(valueString);
219 ///设置Cookie
220 SetCookie(key,valueString,expires);
221 }
222
223 /// <summary>
224 /// 获取DES方法加密之后的Cookie
225 /// </summary>
226 /// <param name="key"></param>
227 /// <returns></returns>
228 public static String GetTripleDESEncryptedCookieValue(String key)
229 {
230
231 ///获取关键字和值
232 key = EncryptString.EncryptTripleDES(key);
233 String valueString = GetCookieValue(key);
234 ///获取Cookie
235 valueString = EncryptString.DecryptTripleDES(valueString);
236 return(valueString);
237 }
238
239 /// <summary>
240 /// 获取DES方法加密之后的Cookie
241 /// </summary>
242 /// <param name="key"></param>
243 /// <returns></returns>
244 public static String GetEncryptedCookieValue(String key)
245 {
246
247 ///获取关键字和值
248 key = EncryptString.Encrypt(key);
249 String valueString = GetCookieValue(key);
250 ///获取Cookie
251 valueString = EncryptString.Decrypt(valueString);
252 return(valueString);
253 }
254
255 /// <summary>
256 /// 获取Cookie
257 /// </summary>
258 /// <param name="key"></param>
259 /// <returns></returns>
260 public static HttpCookie GetCookie(String key)
261 {
262
263 ///获取关键字和值
264 key = HttpContext.Current.Server.UrlEncode(key);
265 ///获取Cookie
266 return(HttpContext.Current.Request.Cookies.Get(key));
267 }
268
269 /// <summary>
270 /// 获取Cookie
271 /// </summary>
272 /// <param name="key"></param>
273 /// <returns></returns>
274 public static String GetCookieValue(String key)
275 {
276
277 ///获取关键字和值
278 String valueString = GetCookie(key).Value;
279 ///获取Cookie
280 valueString = HttpContext.Current.Server.UrlDecode(valueString);
281 return(valueString);
282 }
283 }
284 }