| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3859 人关注过本帖
标题:[原创](C#实现)编写MD5加密与密文校对程序
只看楼主 加入收藏
albert748
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-7-10
收藏
 问题点数:0 回复次数:11 
[原创](C#实现)编写MD5加密与密文校对程序

*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: albert748 E-mail:811702zoe@163.com QQ:462610820
*/ 时间: 2007-10-31 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------


为了早点脱离新人区,在此为各位送上我的原创,希望此文对喜欢加密的朋友和同学有帮助

MD5加密技术,听起来好像是个很高深的东西(我初次听到时也是如此),当然了,如果你想要研究MD5内部的加密方法和步骤的话,它确实有点难度,这方面的东西网上也比较多,包括用C语言和C#实现的MD5加密的加密算法网上比比皆是,C#不得不说确实比C在这方面有一定优势,只需要一个命名空间System.Security.Cryptography,就可以搞定所有问题。

不过话说回来,我都说了这么多了,恐怕还有很多人都还不清楚MD5,MD5到底是什么东东呢?

如果按照正规解释MD5的全称是Message-Digest Algorithm 5,Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数,不太懂是不是?说的简单一点,MD5加密就就好比你把一个任意长度的字符串交给MD5程序,它会返回给你一段固定长度的字符串,这个任意长度的字符串当然也包括一个完整的程序,一般来说,加密长度大多是32位,64位128位等,因为这种加密的算法原因,导致不可逆,也就是说,我不能由定长的字符串计算出原值,同时,不同的任意字符得到的定长字符也完全不一样(也不尽然,只能说几率很小,呵呵)

这样说大概就明白了吧?

好了,开始C#之旅吧。

先看下边这段代码

/*字符串32位MD5加密*/
public static string GetStrMd5(string ConvertString)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)));
t2 = t2.Replace("-", "");
return t2;

}

oop的优点在这里完美的体现出来,我们根本不用关心MD5的加密过程,只需要关注MD5的计算结果
在这里,我们使用命名空间System.Security.Cryptography内的MD5CryptoServiceProvider实例化一个MD5加密服务提供程序
然后用方法md5.ComputeHash计算出md5值,赋值给t2,t2的结果类似于xxxxx-xxxxx-xxxxx-xxxxx
所以这句t2 = t2.Replace("-", "");,就是把中间的“-”替换成空,然后返回MD5密文

这就是字符串的32位MD5加密,

ok?understand?

接着继续。。。。。

/*文件32位MD5密文*/
public static string GetFileMd5(string ConverFile)
{
try
{
FileStream get_file = new FileStream(ConverFile, FileMode.Open, FileAccess.Read, FileShare.Read);
MD5CryptoServiceProvider get_md5 = new MD5CryptoServiceProvider();
byte[] hash_byte = get_md5.ComputeHash(get_file);
string resule = System.BitConverter.ToString(hash_byte);
resule = resule.Replace("-", "");
return resule;
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return e.ToString();
}
}

这就是文件的MD5加密

上课去了,上午还有线形代数课,等会儿回来继续。。。。。喜欢的就帮我顶顶,看不懂的就提问吧,呵呵,免费回答!

[此贴子已经被作者于2007-10-31 9:37:55编辑过]

搜索更多相关主题的帖子: 密文 校对 编写 中国 
2007-10-31 09:36
albert748
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-7-10
收藏
得分:0 

自己顶一个。。。。居然快要沉了。。。。哭

2007-10-31 09:46
toyou542
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-27
收藏
得分:0 
yes,强烈要求更新!
2007-10-31 09:49
albert748
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-7-10
收藏
得分:0 

自己顶起来....如果有人顶我就继续写....呵呵

2007-10-31 10:51
albert748
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-7-10
收藏
得分:0 
没有人吗?
2007-10-31 17:18
哈哈飞
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-10-31
收藏
得分:0 
2007-10-31 17:23
virusangel
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-11-1
收藏
得分:0 

顶一个,继续写吧


2007-11-02 09:18
unname
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-27
收藏
得分:0 
顶你下。。。。。。
2007-11-02 13:13
xueze
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-10-22
收藏
得分:0 
MD5你自己写的吧??厉害哦~~
书上的那个DES我都还没会写呢 牛顶起
2007-11-02 16:57
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
收藏
得分:0 
不错啊

2007-11-02 17:17
快速回复:[原创](C#实现)编写MD5加密与密文校对程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018679 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved