C# Nothing is impossible

.NET家园

博客园 首页 新随笔 联系 订阅 管理
 1     /// <summary>
 2     /// 加密
 3     /// </summary>
 4     /// <param name="str"></param>
 5     /// <param name="key">Key ,必须为8位</param>
 6     /// <returns></returns>
 7     public static string Encode(string str, string key)
 8     {
 9       DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
10       provider.Key = Encoding.ASCII.GetBytes(key.Substring(08));
11       provider.IV = Encoding.ASCII.GetBytes(key.Substring(08));
12       byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(str);
13       MemoryStream stream = new MemoryStream();
14       CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
15       stream2.Write(bytes, 0, bytes.Length);
16       stream2.FlushFinalBlock();
17       StringBuilder builder = new StringBuilder();
18       foreach (byte num in stream.ToArray())
19       {
20         builder.AppendFormat("{0:X2}", num);
21       }
22       stream.Close();
23       return builder.ToString();
24     }
25 
26     /// <summary>
27     /// 解密
28     /// </summary>
29     /// <param name="str"></param>
30     /// <param name="key">Key ,必须为8位</param>
31     /// <returns></returns>
32     public static string Decode(string str, string key)
33     {
34       DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
35       provider.Key = Encoding.ASCII.GetBytes(key.Substring(08));
36       provider.IV = Encoding.ASCII.GetBytes(key.Substring(08));
37       byte[] buffer = new byte[str.Length / 2];
38       for (int i = 0; i < (str.Length / 2); i++)
39       {
40         int num2 = Convert.ToInt32(str.Substring(i * 22), 0x10);
41         buffer[i] = (byte)num2;
42       }
43       MemoryStream stream = new MemoryStream();
44       CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
45       stream2.Write(buffer, 0, buffer.Length);
46       stream2.FlushFinalBlock();
47       stream.Close();
48       return Encoding.GetEncoding("GB2312").GetString(stream.ToArray());
49     }


posted on 2010-05-20 16:45  小甜甜  阅读(156)  评论(0)    收藏  举报