C#封装的DES与MD5加密示例代码
2007-01-09 12:30
736 查看
1
using System;
2
using System.IO;
3
using System.Text;
4
using System.Security.Cryptography;
5
6
namespace ConsoleApplication1
7
{
8
public class DESEncryptor
9
{
10
私有成员#region 私有成员
11
/**//// <summary>
12
/// 输入字符串
13
/// </summary>
14
private string inputString=null;
15
/**//// <summary>
16
/// 输出字符串
17
/// </summary>
18
private string outString=null;
19
/**//// <summary>
20
/// 输入文件路径
21
/// </summary>
22
private string inputFilePath=null;
23
/**//// <summary>
24
/// 输出文件路径
25
/// </summary>
26
private string outFilePath=null;
27
/**//// <summary>
28
/// 加密密钥
29
/// </summary>
30
private string encryptKey=null;
31
/**//// <summary>
32
/// 解密密钥
33
/// </summary>
34
private string decryptKey=null;
35
/**//// <summary>
36
/// 提示信息
37
/// </summary>
38
private string noteMessage=null;
39
#endregion
40
41
公共属性#region 公共属性
42
/**//// <summary>
43
/// 输入字符串
44
/// </summary>
45
public string InputString
46
{
47
get
{return inputString;}
48
set
{inputString=value;}
49
}
50
/**//// <summary>
51
/// 输出字符串
52
/// </summary>
53
public string OutString
54
{
55
get
{return outString;}
56
set
{outString=value;}
57
}
58
/**//// <summary>
59
/// 输入文件路径
60
/// </summary>
61
public string InputFilePath
62
{
63
get
{return inputFilePath;}
64
set
{inputFilePath=value;}
65
}
66
/**//// <summary>
67
/// 输出文件路径
68
/// </summary>
69
public string OutFilePath
70
{
71
get
{return outFilePath;}
72
set
{outFilePath=value;}
73
}
74
/**//// <summary>
75
/// 加密密钥
76
/// </summary>
77
public string EncryptKey
78
{
79
get
{return encryptKey;}
80
set
{encryptKey=value;}
81
}
82
/**//// <summary>
83
/// 解密密钥
84
/// </summary>
85
public string DecryptKey
86
{
87
get
{return decryptKey;}
88
set
{decryptKey=value;}
89
}
90
/**//// <summary>
91
/// 错误信息
92
/// </summary>
93
public string NoteMessage
94
{
95
get
{return noteMessage;}
96
set
{noteMessage=value;}
97
}
98
#endregion
99
100
构造函数#region 构造函数
101
public DESEncryptor()
102
{
103
//
104
// TODO: 在此处添加构造函数逻辑
105
//
106
}
107
#endregion
108
109
DES加密字符串#region DES加密字符串
110
/**//// <summary>
111
/// 加密字符串
112
/// 注意:密钥必须为8位
113
/// </summary>
114
/// <param name="strText">字符串</param>
115
/// <param name="encryptKey">密钥</param>
116
public void DesEncrypt()
117
{
118
byte[] byKey = null;
119
byte[] IV =
{ 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
120
try
121
{
122
byKey = System.Text.Encoding.UTF8.GetBytes(this.encryptKey.Substring(0, 8));
123
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
124
byte[] inputByteArray = Encoding.UTF8.GetBytes(this.inputString);
125
MemoryStream ms = new MemoryStream();
126
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
127
cs.Write(inputByteArray, 0, inputByteArray.Length);
128
cs.FlushFinalBlock();
129
this.outString = Convert.ToBase64String(ms.ToArray());
130
}
131
catch (System.Exception error)
132
{
133
this.noteMessage = error.Message;
134
}
135
}
136
#endregion
137
138
DES解密字符串#region DES解密字符串
139
/**//// <summary>
140
/// 解密字符串
141
/// </summary>
142
/// <param name="this.inputString">加了密的字符串</param>
143
/// <param name="decryptKey">密钥</param>
144
public void DesDecrypt()
145
{
146
byte[] byKey = null;
147
byte[] IV =
{ 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
148
byte[] inputByteArray = new Byte[this.inputString.Length];
149
try
150
{
151
byKey = System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
152
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
153
inputByteArray = Convert.FromBase64String(this.inputString);
154
MemoryStream ms = new MemoryStream();
155
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
156
cs.Write(inputByteArray, 0, inputByteArray.Length);
157
cs.FlushFinalBlock();
158
System.Text.Encoding encoding = new System.Text.UTF8Encoding();
159
this.outString = encoding.GetString(ms.ToArray());
160
}
161
catch (System.Exception error)
162
{
163
this.noteMessage = error.Message;
164
}
165
}
166
#endregion
167
168
DES加密文件#region DES加密文件
169
/**//// <summary>
170
/// DES加密文件
171
/// </summary>
172
/// <param name="this.inputFilePath">源文件路径</param>
173
/// <param name="this.outFilePath">输出文件路径</param>
174
/// <param name="encryptKey">密钥</param>
175
public void FileDesEncrypt()
176
{
177
byte[] byKey = null;
178
byte[] IV =
{ 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
179
try
180
{
181
byKey = System.Text.Encoding.UTF8.GetBytes(this.encryptKey.Substring(0, 8));
182
FileStream fin = new FileStream(this.inputFilePath, FileMode.Open, FileAccess.Read);
183
FileStream fout = new FileStream(this.outFilePath, FileMode.OpenOrCreate, FileAccess.Write);
184
fout.SetLength(0);
185
//Create variables to help with read and write.
186
byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
187
long rdlen = 0; //This is the total number of bytes written.
188
long totlen = fin.Length; //This is the total length of the input file.
189
int len; //This is the number of bytes to be written at a time.
190
DES des = new DESCryptoServiceProvider();
191
CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
192
193
//Read from the input file, then encrypt and write to the output file.
194
while (rdlen < totlen)
195
{
196
len = fin.Read(bin, 0, 100);
197
encStream.Write(bin, 0, len);
198
rdlen = rdlen + len;
199
}
200
201
encStream.Close();
202
fout.Close();
203
fin.Close();
204
}
205
catch (System.Exception error)
206
{
207
this.noteMessage = error.Message.ToString();
208
}
209
}
210
#endregion
211
212
DES解密文件#region DES解密文件
213
/**//// <summary>
214
/// 解密文件
215
/// </summary>
216
/// <param name="this.inputFilePath">加密了的文件路径</param>
217
/// <param name="this.outFilePath">输出文件路径</param>
218
/// <param name="decryptKey">密钥</param>
219
public void FileDesDecrypt()
220
{
221
byte[] byKey = null;
222
byte[] IV =
{ 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
223
try
224
{
225
byKey = System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
226
FileStream fin = new FileStream(this.inputFilePath, FileMode.Open, FileAccess.Read);
227
FileStream fout = new FileStream(this.outFilePath, FileMode.OpenOrCreate, FileAccess.Write);
228
fout.SetLength(0);
229
//Create variables to help with read and write.
230
byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
231
long rdlen = 0; //This is the total number of bytes written.
232
long totlen = fin.Length; //This is the total length of the input file.
233
int len; //This is the number of bytes to be written at a time.
234
DES des = new DESCryptoServiceProvider();
235
CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
236
237
238
//Read from the input file, then encrypt and write to the output file.
239
while (rdlen < totlen)
240
{
241
len = fin.Read(bin, 0, 100);
242
encStream.Write(bin, 0, len);
243
rdlen = rdlen + len;
244
}
245
246
encStream.Close();
247
fout.Close();
248
fin.Close();
249
}
250
catch (System.Exception error)
251
{
252
this.noteMessage = error.Message.ToString();
253
}
254
}
255
#endregion
256
257
MD5#region MD5
258
/**//// <summary>
259
/// MD5 Encrypt
260
/// </summary>
261
/// <param name="strText">text</param>
262
/// <returns>md5 Encrypt string</returns>
263
public void MD5Encrypt()
264
{
265
MD5 md5 = new MD5CryptoServiceProvider();
266
byte[] result = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(this.inputString));
267
this.outString = System.Text.Encoding.Default.GetString(result);
268
}
269
#endregion
270
}
271
}
272
using System;
2
using System.IO;
3
using System.Text;
4
using System.Security.Cryptography;
5
6
namespace ConsoleApplication1
7
{
8
public class DESEncryptor
9
{
10
私有成员#region 私有成员
11
/**//// <summary>
12
/// 输入字符串
13
/// </summary>
14
private string inputString=null;
15
/**//// <summary>
16
/// 输出字符串
17
/// </summary>
18
private string outString=null;
19
/**//// <summary>
20
/// 输入文件路径
21
/// </summary>
22
private string inputFilePath=null;
23
/**//// <summary>
24
/// 输出文件路径
25
/// </summary>
26
private string outFilePath=null;
27
/**//// <summary>
28
/// 加密密钥
29
/// </summary>
30
private string encryptKey=null;
31
/**//// <summary>
32
/// 解密密钥
33
/// </summary>
34
private string decryptKey=null;
35
/**//// <summary>
36
/// 提示信息
37
/// </summary>
38
private string noteMessage=null;
39
#endregion
40
41
公共属性#region 公共属性
42
/**//// <summary>
43
/// 输入字符串
44
/// </summary>
45
public string InputString
46
{
47
get
{return inputString;}
48
set
{inputString=value;}
49
}
50
/**//// <summary>
51
/// 输出字符串
52
/// </summary>
53
public string OutString
54
{
55
get
{return outString;}
56
set
{outString=value;}
57
}
58
/**//// <summary>
59
/// 输入文件路径
60
/// </summary>
61
public string InputFilePath
62
{
63
get
{return inputFilePath;}
64
set
{inputFilePath=value;}
65
}
66
/**//// <summary>
67
/// 输出文件路径
68
/// </summary>
69
public string OutFilePath
70
{
71
get
{return outFilePath;}
72
set
{outFilePath=value;}
73
}
74
/**//// <summary>
75
/// 加密密钥
76
/// </summary>
77
public string EncryptKey
78
{
79
get
{return encryptKey;}
80
set
{encryptKey=value;}
81
}
82
/**//// <summary>
83
/// 解密密钥
84
/// </summary>
85
public string DecryptKey
86
{
87
get
{return decryptKey;}
88
set
{decryptKey=value;}
89
}
90
/**//// <summary>
91
/// 错误信息
92
/// </summary>
93
public string NoteMessage
94
{
95
get
{return noteMessage;}
96
set
{noteMessage=value;}
97
}
98
#endregion
99
100
构造函数#region 构造函数
101
public DESEncryptor()
102
{
103
//
104
// TODO: 在此处添加构造函数逻辑
105
//
106
}
107
#endregion
108
109
DES加密字符串#region DES加密字符串
110
/**//// <summary>
111
/// 加密字符串
112
/// 注意:密钥必须为8位
113
/// </summary>
114
/// <param name="strText">字符串</param>
115
/// <param name="encryptKey">密钥</param>
116
public void DesEncrypt()
117
{
118
byte[] byKey = null;
119
byte[] IV =
{ 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
120
try
121
{
122
byKey = System.Text.Encoding.UTF8.GetBytes(this.encryptKey.Substring(0, 8));
123
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
124
byte[] inputByteArray = Encoding.UTF8.GetBytes(this.inputString);
125
MemoryStream ms = new MemoryStream();
126
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
127
cs.Write(inputByteArray, 0, inputByteArray.Length);
128
cs.FlushFinalBlock();
129
this.outString = Convert.ToBase64String(ms.ToArray());
130
}
131
catch (System.Exception error)
132
{
133
this.noteMessage = error.Message;
134
}
135
}
136
#endregion
137
138
DES解密字符串#region DES解密字符串
139
/**//// <summary>
140
/// 解密字符串
141
/// </summary>
142
/// <param name="this.inputString">加了密的字符串</param>
143
/// <param name="decryptKey">密钥</param>
144
public void DesDecrypt()
145
{
146
byte[] byKey = null;
147
byte[] IV =
{ 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
148
byte[] inputByteArray = new Byte[this.inputString.Length];
149
try
150
{
151
byKey = System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
152
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
153
inputByteArray = Convert.FromBase64String(this.inputString);
154
MemoryStream ms = new MemoryStream();
155
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
156
cs.Write(inputByteArray, 0, inputByteArray.Length);
157
cs.FlushFinalBlock();
158
System.Text.Encoding encoding = new System.Text.UTF8Encoding();
159
this.outString = encoding.GetString(ms.ToArray());
160
}
161
catch (System.Exception error)
162
{
163
this.noteMessage = error.Message;
164
}
165
}
166
#endregion
167
168
DES加密文件#region DES加密文件
169
/**//// <summary>
170
/// DES加密文件
171
/// </summary>
172
/// <param name="this.inputFilePath">源文件路径</param>
173
/// <param name="this.outFilePath">输出文件路径</param>
174
/// <param name="encryptKey">密钥</param>
175
public void FileDesEncrypt()
176
{
177
byte[] byKey = null;
178
byte[] IV =
{ 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
179
try
180
{
181
byKey = System.Text.Encoding.UTF8.GetBytes(this.encryptKey.Substring(0, 8));
182
FileStream fin = new FileStream(this.inputFilePath, FileMode.Open, FileAccess.Read);
183
FileStream fout = new FileStream(this.outFilePath, FileMode.OpenOrCreate, FileAccess.Write);
184
fout.SetLength(0);
185
//Create variables to help with read and write.
186
byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
187
long rdlen = 0; //This is the total number of bytes written.
188
long totlen = fin.Length; //This is the total length of the input file.
189
int len; //This is the number of bytes to be written at a time.
190
DES des = new DESCryptoServiceProvider();
191
CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
192
193
//Read from the input file, then encrypt and write to the output file.
194
while (rdlen < totlen)
195
{
196
len = fin.Read(bin, 0, 100);
197
encStream.Write(bin, 0, len);
198
rdlen = rdlen + len;
199
}
200
201
encStream.Close();
202
fout.Close();
203
fin.Close();
204
}
205
catch (System.Exception error)
206
{
207
this.noteMessage = error.Message.ToString();
208
}
209
}
210
#endregion
211
212
DES解密文件#region DES解密文件
213
/**//// <summary>
214
/// 解密文件
215
/// </summary>
216
/// <param name="this.inputFilePath">加密了的文件路径</param>
217
/// <param name="this.outFilePath">输出文件路径</param>
218
/// <param name="decryptKey">密钥</param>
219
public void FileDesDecrypt()
220
{
221
byte[] byKey = null;
222
byte[] IV =
{ 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
223
try
224
{
225
byKey = System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8));
226
FileStream fin = new FileStream(this.inputFilePath, FileMode.Open, FileAccess.Read);
227
FileStream fout = new FileStream(this.outFilePath, FileMode.OpenOrCreate, FileAccess.Write);
228
fout.SetLength(0);
229
//Create variables to help with read and write.
230
byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
231
long rdlen = 0; //This is the total number of bytes written.
232
long totlen = fin.Length; //This is the total length of the input file.
233
int len; //This is the number of bytes to be written at a time.
234
DES des = new DESCryptoServiceProvider();
235
CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
236
237
238
//Read from the input file, then encrypt and write to the output file.
239
while (rdlen < totlen)
240
{
241
len = fin.Read(bin, 0, 100);
242
encStream.Write(bin, 0, len);
243
rdlen = rdlen + len;
244
}
245
246
encStream.Close();
247
fout.Close();
248
fin.Close();
249
}
250
catch (System.Exception error)
251
{
252
this.noteMessage = error.Message.ToString();
253
}
254
}
255
#endregion
256
257
MD5#region MD5
258
/**//// <summary>
259
/// MD5 Encrypt
260
/// </summary>
261
/// <param name="strText">text</param>
262
/// <returns>md5 Encrypt string</returns>
263
public void MD5Encrypt()
264
{
265
MD5 md5 = new MD5CryptoServiceProvider();
266
byte[] result = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(this.inputString));
267
this.outString = System.Text.Encoding.Default.GetString(result);
268
}
269
#endregion
270
}
271
}
272
相关文章推荐
- 详解C#实现MD5加密的示例代码
- c#判断网络连接状态示例代码
- 线性表代码示例——C#
- C# 读写Ini文件,全代码示例解析
- c#得到本月有几周和这几周的起止时间示例代码
- C#打开指定文件夹及下载文件代码示例
- C# 4.0四大新特性代码示例与解读
- JavaScript中cookie工具函数封装的示例代码
- C#实现使用HTTP管道的.NET远程代码示例
- C#使用互斥量(Mutex)实现多进程并发操作时多进程间线程同步操作(进程同步)的简单示例代码及使用方法
- c#破解验证码示例代码
- c# 使用hook来监控鼠标键盘事件的示例代码
- Asp.net 2.0 用C# 创建 PDF文件[引用] (示例代码下载)
- C# 4.0四大新特性代码示例与解读
- vue axios 二次封装的示例代码
- C#使用DES和AES实现加密解密功能示例
- c#动态添加band 添加列 添加模板列代码示例
- 基于RSA的加密/解密示例C#代码
- Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载)