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(0, 8));
11 provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
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(0, 8));
36 provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
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 * 2, 2), 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 }
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(0, 8));
11 provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
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(0, 8));
36 provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
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 * 2, 2), 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 }
浙公网安备 33010602011771号