该代码实现如下功能:
1 利用多种加密与解密的方式对数据进行加密与解密.
2 读取XML与写入XML实例.
运行图解如下
程序启动图1
DESEncrypt加密后
DESEncrypt解密前
DESEncrypt解密后
部分代码如下:
![](/Images/OutliningIndicators/ContractedBlock.gif)
X8023Z_ENCODE
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Security.Cryptography;
6![](/Images/OutliningIndicators/None.gif)
7
namespace X8023Z_ENCODE
8![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
9![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
10
/// Encrypt 的摘要说明。
11
/// 8023
12
/// </summary>
13
public class DEncrypt
14![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
15![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
16
/// 构造方法
17
/// </summary>
18
public DEncrypt()
19![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
20
}
21![](/Images/OutliningIndicators/InBlock.gif)
22![](/Images/OutliningIndicators/ContractedSubBlock.gif)
使用 给定密钥字符串 加密/解密string#region 使用 给定密钥字符串 加密/解密string
23![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
24
/// 使用给定密钥字符串加密string
25
/// </summary>
26
/// <param name="original">原始文字</param>
27
/// <param name="key">密钥</param>
28
/// <param name="encoding">字符编码方案</param>
29
/// <returns>密文</returns>
30
public static string Encrypt(string original, string key)
31![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
32
byte[] buff = System.Text.Encoding.Default.GetBytes(original);
33
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
34
return Convert.ToBase64String(Encrypt(buff, kb));
35
}
36![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
37
/// 使用给定密钥字符串解密string
38
/// </summary>
39
/// <param name="original">密文</param>
40
/// <param name="key">密钥</param>
41
/// <returns>明文</returns>
42
public static string Decrypt(string original, string key)
43![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
44
return Decrypt(original, key, System.Text.Encoding.Default);
45
}
46![](/Images/OutliningIndicators/InBlock.gif)
47![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
48
/// 使用给定密钥字符串解密string,返回指定编码方式明文
49
/// </summary>
50
/// <param name="encrypted">密文</param>
51
/// <param name="key">密钥</param>
52
/// <param name="encoding">字符编码方案</param>
53
/// <returns>明文</returns>
54
public static string Decrypt(string encrypted, string key, Encoding encoding)
55![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
56
byte[] buff = Convert.FromBase64String(encrypted);
57
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
58
return encoding.GetString(Decrypt(buff, kb));
59
}
60
#endregion
61![](/Images/OutliningIndicators/InBlock.gif)
62![](/Images/OutliningIndicators/InBlock.gif)
63![](/Images/OutliningIndicators/ContractedSubBlock.gif)
使用 给定密钥 加密/解密/byte[]#region 使用 给定密钥 加密/解密/byte[]
64![](/Images/OutliningIndicators/InBlock.gif)
65![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
66
/// 生成MD5摘要
67
/// </summary>
68
/// <param name="original">数据源</param>
69
/// <returns>摘要</returns>
70
public static byte[] MakeMD5(byte[] original)
71![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
72
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
73
byte[] keyhash = hashmd5.ComputeHash(original);
74
hashmd5 = null;
75
return keyhash;
76
}
77![](/Images/OutliningIndicators/InBlock.gif)
78![](/Images/OutliningIndicators/InBlock.gif)
79![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
80
/// 使用给定密钥加密
81
/// </summary>
82
/// <param name="original">明文</param>
83
/// <param name="key">密钥</param>
84
/// <returns>密文</returns>
85
public static byte[] Encrypt(byte[] original, byte[] key)
86![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
87
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
88
des.Key = MakeMD5(key);
89
des.Mode = CipherMode.ECB;
90![](/Images/OutliningIndicators/InBlock.gif)
91
return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
92
}
93![](/Images/OutliningIndicators/InBlock.gif)
94![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
95
/// 使用给定密钥解密数据
96
/// </summary>
97
/// <param name="encrypted">密文</param>
98
/// <param name="key">密钥</param>
99
/// <returns>明文</returns>
100
public static byte[] Decrypt(byte[] encrypted, byte[] key)
101![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
102
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
103
des.Key = MakeMD5(key);
104
des.Mode = CipherMode.ECB;
105
try
106![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
107
return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
108
}
109
catch
110![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
111
string strError = "The KEY is error,please Enter In the right KEY!";
112
byte[] error = Encoding.UTF8.GetBytes(strError);
113![](/Images/OutliningIndicators/InBlock.gif)
114
// byte[] error=new byte[10000];
115
// error = System.Text.Encoding.ASCII.GetBytes(strError );
116
// Array.Copy(error, 0, error, 0, error.Length);
117
return error ;
118
}
119
}
120![](/Images/OutliningIndicators/InBlock.gif)
121
#endregion
122![](/Images/OutliningIndicators/InBlock.gif)
123
}
124
}
125![](/Images/OutliningIndicators/None.gif)
有需要全部代码的请加入QQ群:60960278 加入者请说明理由,说明博客园ID.并遵守群规.谢谢合作!