KiMoGiGi 技术文集
不在乎选择什么,而在乎坚持多久……
IT博客
首页
联系
聚合
管理
185 Posts :: 14 Stories :: 48 Comments :: 0 Trackbacks
公告
KiMoGiGi 技术文集
注:本Blog技术文章
除特别说明外
全部均来源Web和转载
最近正在看的
(图片来源
China-Pub
):
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(10)
给我留言
查看公开留言
查看私人留言
随笔分类
(219)
AJAX.NET(5)
ASP.NET(38)
Basic(7)
C# / Winforms(64)
Enterprise Library(3)
Java(1)
JavaScript(35)
Python(4)
Web小技巧(19)
WPF/SilverLight(4)
工具插件(6)
数据库相关(7)
经验之谈(24)
网络编程(2)
随笔档案
(185)
2011年3月 (1)
2010年11月 (1)
2010年8月 (1)
2010年6月 (2)
2009年10月 (1)
2009年9月 (9)
2009年7月 (1)
2009年5月 (2)
2009年3月 (6)
2009年2月 (3)
2009年1月 (7)
2008年12月 (6)
2008年11月 (5)
2008年10月 (3)
2008年9月 (1)
2008年8月 (5)
2008年7月 (10)
2008年6月 (9)
2008年5月 (6)
2008年4月 (5)
2008年3月 (6)
2008年2月 (1)
2008年1月 (4)
2007年12月 (11)
2007年11月 (11)
2007年10月 (2)
2007年8月 (1)
2007年4月 (4)
2007年3月 (11)
2007年2月 (3)
2007年1月 (10)
2006年12月 (12)
2006年11月 (6)
2006年10月 (3)
2006年8月 (3)
2006年7月 (5)
2006年6月 (8)
文章分类
(25)
ASP.NET(8)
Basic Knowledge(1)
C#(4)
JavaScript
Web设计
开源框架 - NHibernate
数据库相关
经验之谈
英文文章翻译(12)
文章档案
(14)
2008年8月 (1)
2008年6月 (2)
2007年12月 (4)
2007年11月 (7)
收藏夹
JavaScript
Friend 's Blog
My Step
映画记录
技术崇拜
A JavaScript Fancier
Dflying
dudu
First we try, then we trust
lifesinger
淘宝网UED部-Web前端
TerryLee's Tech Space
听棠.NET
周爱民
职业生涯顾问Leo的专栏
鸟食轩
技術網站
C# Corner
codeplex
CSDN
博客園
数据结构
點部落
搜索
C#封装的DES与MD5加密示例代码
using
System;
using
System.IO;
using
System.Text;
using
System.Security.Cryptography;
namespace
TestWeb.App_Code
{
/**/
///
<summary>
///
DESEncryptor 的摘要说明。
///
</summary>
public
class
DESEncryptor
{
public
DESEncryptor()
{
//
//
TODO: 在此处添加构造函数逻辑
//
}
私有成员
#region
私有成员
/**/
///
<summary>
///
输入字符串
///
</summary>
private
string
inputString
=
null
;
/**/
/**/
/**/
///
<summary>
///
输出字符串
///
</summary>
private
string
outString
=
null
;
/**/
/**/
/**/
///
<summary>
///
输入文件路径
///
</summary>
private
string
inputFilePath
=
null
;
/**/
/**/
/**/
///
<summary>
///
输出文件路径
///
</summary>
private
string
outFilePath
=
null
;
/**/
/**/
/**/
///
<summary>
///
加密密钥
///
</summary>
private
string
encryptKey
=
null
;
/**/
/**/
/**/
///
<summary>
///
解密密钥
///
</summary>
private
string
decryptKey
=
null
;
/**/
/**/
/**/
///
<summary>
///
提示信息
///
</summary>
private
string
noteMessage
=
null
;
#endregion
公共属性
#region
公共属性
/**/
/**/
/**/
///
<summary>
///
输入字符串
///
</summary>
public
string
InputString
{
get
{
return
inputString;}
set
{inputString
=
value;}
}
/**/
/**/
/**/
///
<summary>
///
输出字符串
///
</summary>
public
string
OutString
{
get
{
return
outString;}
set
{outString
=
value;}
}
/**/
/**/
/**/
///
<summary>
///
输入文件路径
///
</summary>
public
string
InputFilePath
{
get
{
return
inputFilePath;}
set
{inputFilePath
=
value;}
}
/**/
/**/
/**/
///
<summary>
///
输出文件路径
///
</summary>
public
string
OutFilePath
{
get
{
return
outFilePath;}
set
{outFilePath
=
value;}
}
/**/
/**/
/**/
///
<summary>
///
加密密钥
///
</summary>
public
string
EncryptKey
{
get
{
return
encryptKey;}
set
{encryptKey
=
value;}
}
/**/
/**/
/**/
///
<summary>
///
解密密钥
///
</summary>
public
string
DecryptKey
{
get
{
return
decryptKey;}
set
{decryptKey
=
value;}
}
/**/
/**/
/**/
///
<summary>
///
错误信息
///
</summary>
public
string
NoteMessage
{
get
{
return
noteMessage;}
set
{noteMessage
=
value;}
}
#endregion
DES加密字符串
#region
DES加密字符串
/**/
/**/
/**/
///
<summary>
///
加密字符串
///
注意:密钥必须为8位
///
</summary>
///
<param name="strText">
字符串
</param>
///
<param name="encryptKey">
密钥
</param>
public
void
DesEncrypt()
{
byte
[] byKey
=
null
;
byte
[] IV
=
{
0x12
,
0x34
,
0x56
,
0x78
,
0x90
,
0xAB
,
0xCD
,
0xEF
}
;
try
{
byKey
=
System.Text.Encoding.UTF8.GetBytes(
this
.encryptKey.Substring(
0
,
8
));
DESCryptoServiceProvider des
=
new
DESCryptoServiceProvider();
byte
[] inputByteArray
=
Encoding.UTF8.GetBytes(
this
.inputString);
MemoryStream ms
=
new
MemoryStream();
CryptoStream cs
=
new
CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray,
0
, inputByteArray.Length);
cs.FlushFinalBlock();
this
.outString
=
Convert.ToBase64String(ms.ToArray());
}
catch
(System.Exception error)
{
this
.noteMessage
=
error.Message;
}
}
#endregion
DES解密字符串
#region
DES解密字符串
/**/
/**/
/**/
///
<summary>
///
解密字符串
///
</summary>
///
<param name="this.inputString">
加了密的字符串
</param>
///
<param name="decryptKey">
密钥
</param>
public
void
DesDecrypt()
{
byte
[] byKey
=
null
;
byte
[] IV
=
{
0x12
,
0x34
,
0x56
,
0x78
,
0x90
,
0xAB
,
0xCD
,
0xEF
}
;
byte
[] inputByteArray
=
new
Byte[
this
.inputString.Length];
try
{
byKey
=
System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(
0
,
8
));
DESCryptoServiceProvider des
=
new
DESCryptoServiceProvider();
inputByteArray
=
Convert.FromBase64String(
this
.inputString);
MemoryStream ms
=
new
MemoryStream();
CryptoStream cs
=
new
CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray,
0
, inputByteArray.Length);
cs.FlushFinalBlock();
System.Text.Encoding encoding
=
new
System.Text.UTF8Encoding();
this
.outString
=
encoding.GetString(ms.ToArray());
}
catch
(System.Exception error)
{
this
.noteMessage
=
error.Message;
}
}
#endregion
DES加密文件
#region
DES加密文件
/**/
/**/
/**/
///
<summary>
///
DES加密文件
///
</summary>
///
<param name="this.inputFilePath">
源文件路径
</param>
///
<param name="this.outFilePath">
输出文件路径
</param>
///
<param name="encryptKey">
密钥
</param>
public
void
FileDesEncrypt()
{
byte
[] byKey
=
null
;
byte
[] IV
=
{
0x12
,
0x34
,
0x56
,
0x78
,
0x90
,
0xAB
,
0xCD
,
0xEF
}
;
try
{
byKey
=
System.Text.Encoding.UTF8.GetBytes(
this
.encryptKey.Substring(
0
,
8
));
FileStream fin
=
new
FileStream(
this
.inputFilePath, FileMode.Open, FileAccess.Read);
FileStream fout
=
new
FileStream(
this
.outFilePath, FileMode.OpenOrCreate, FileAccess.Write);
fout.SetLength(
0
);
//
Create variables to help with read and write.
byte
[] bin
=
new
byte
[
100
];
//
This is intermediate storage for the encryption.
long
rdlen
=
0
;
//
This is the total number of bytes written.
long
totlen
=
fin.Length;
//
This is the total length of the input file.
int
len;
//
This is the number of bytes to be written at a time.
DES des
=
new
DESCryptoServiceProvider();
CryptoStream encStream
=
new
CryptoStream(fout, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);
//
Read from the input file, then encrypt and write to the output file.
while
(rdlen
<
totlen)
{
len
=
fin.Read(bin,
0
,
100
);
encStream.Write(bin,
0
, len);
rdlen
=
rdlen
+
len;
}
encStream.Close();
fout.Close();
fin.Close();
}
catch
(System.Exception error)
{
this
.noteMessage
=
error.Message.ToString();
}
}
#endregion
DES解密文件
#region
DES解密文件
/**/
/**/
/**/
///
<summary>
///
解密文件
///
</summary>
///
<param name="this.inputFilePath">
加密了的文件路径
</param>
///
<param name="this.outFilePath">
输出文件路径
</param>
///
<param name="decryptKey">
密钥
</param>
public
void
FileDesDecrypt()
{
byte
[] byKey
=
null
;
byte
[] IV
=
{
0x12
,
0x34
,
0x56
,
0x78
,
0x90
,
0xAB
,
0xCD
,
0xEF
}
;
try
{
byKey
=
System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(
0
,
8
));
FileStream fin
=
new
FileStream(
this
.inputFilePath, FileMode.Open, FileAccess.Read) ;
FileStream fout
=
new
FileStream(
this
.outFilePath, FileMode.OpenOrCreate, FileAccess.Write);
fout.SetLength(
0
);
//
Create variables to help with read and write.
byte
[] bin
=
new
byte
[
100
];
//
This is intermediate storage for the encryption.
long
rdlen
=
0
;
//
This is the total number of bytes written.
long
totlen
=
fin.Length;
//
This is the total length of the input file.
int
len;
//
This is the number of bytes to be written at a time.
DES des
=
new
DESCryptoServiceProvider();
CryptoStream encStream
=
new
CryptoStream(fout, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);
//
Read from the input file, then encrypt and write to the output file.
while
(rdlen
<
totlen)
{
len
=
fin.Read(bin,
0
,
100
);
encStream.Write(bin,
0
, len);
rdlen
=
rdlen
+
len;
}
encStream.Close();
fout.Close();
fin.Close();
}
catch
(System.Exception error)
{
this
.noteMessage
=
error.Message.ToString();
}
}
#endregion
MD5
#region
MD5
/**/
///
<summary>
///
MD5 Encrypt
///
</summary>
///
<param name="strText">
text
</param>
///
<returns>
md5 Encrypt string
</returns>
public
void
MD5Encrypt()
{
MD5 md5
=
new
MD5CryptoServiceProvider();
byte
[] result
=
md5.ComputeHash(System.Text.Encoding.Default.GetBytes(
this
.inputString));
this
.outString
=
System.Text.Encoding.Default.GetString(result);
}
#endregion
}
}
posted on 2007-01-04 00:10
KiMoGiGi
阅读(516)
评论(0)
编辑
收藏
引用
所属分类:
C# / Winforms
只有注册用户
登录
后才能发表评论。
Powered by:
IT博客
Copyright © KiMoGiGi