编程论坛's Archiver

albert748 发表于 2007-10-31 09:36

[原创](C#实现)编写MD5加密与密文校对程序

<P>*/ --------------------------------------------------------------------------------------<br>*/ 出自: 编程中国  http://www.bc-cn.net<br>*/ 作者: albert748    E-mail:811702zoe@163.com    QQ:462610820<br>*/ 时间: 2007-10-31  编程论坛首发<br>*/ 声明: 尊重作者劳动,转载请保留本段文字<br>*/ --------------------------------------------------------------------------------------<br><br><br>为了早点脱离新人区,在此为各位送上我的原创,希望此文对喜欢加密的朋友和同学有帮助<br><br>MD5加密技术,听起来好像是个很高深的东西(我初次听到时也是如此),当然了,如果你想要研究MD5内部的加密方法和步骤的话,它确实有点难度,这方面的东西网上也比较多,包括用C语言和C#实现的MD5加密的加密算法网上比比皆是,C#不得不说确实比C在这方面有一定优势,只需要一个命名空间System.Security.Cryptography,就可以搞定所有问题。<br><br>不过话说回来,我都说了这么多了,恐怕还有很多人都还不清楚MD5,MD5到底是什么东东呢?<br><br>如果按照正规解释MD5的全称是Message-Digest Algorithm 5,Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数,不太懂是不是?说的简单一点,MD5加密就就好比你把一个任意长度的字符串交给MD5程序,它会返回给你一段固定长度的字符串,这个任意长度的字符串当然也包括一个完整的程序,一般来说,加密长度大多是32位,64位128位等,因为这种加密的算法原因,导致不可逆,也就是说,我不能由定长的字符串计算出原值,同时,不同的任意字符得到的定长字符也完全不一样(也不尽然,只能说几率很小,呵呵)<br><br>这样说大概就明白了吧?<br><br>好了,开始C#之旅吧。<br><br>先看下边这段代码<br><br>        /*字符串32位MD5加密*/<br>        public static string GetStrMd5(string ConvertString)<br>        {<br>            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();<br>            string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)));<br>            t2 = t2.Replace("-", "");<br>            return t2;</P>
<P>        }<br><br>oop的优点在这里完美的体现出来,我们根本不用关心MD5的加密过程,只需要关注MD5的计算结果<br>在这里,我们使用命名空间System.Security.Cryptography内的MD5CryptoServiceProvider实例化一个MD5加密服务提供程序<br>然后用方法md5.ComputeHash计算出md5值,赋值给t2,t2的结果类似于xxxxx-xxxxx-xxxxx-xxxxx<br>所以这句t2 = t2.Replace("-", "");,就是把中间的“-”替换成空,然后返回MD5密文<br><br>这就是字符串的32位MD5加密,<br><br>ok?understand?<br><br>接着继续。。。。。<br><br>        /*文件32位MD5密文*/<br>        public static string GetFileMd5(string ConverFile)<br>        {<br>            try<br>            {<br>                FileStream get_file = new FileStream(ConverFile, FileMode.Open, FileAccess.Read, FileShare.Read);<br>                MD5CryptoServiceProvider get_md5 = new MD5CryptoServiceProvider();<br>                byte[] hash_byte = get_md5.ComputeHash(get_file);<br>                string resule = System.BitConverter.ToString(hash_byte);<br>                resule = resule.Replace("-", "");<br>                return resule;<br>            }<br>            catch (Exception e)<br>            {<br>                MessageBox.Show(e.ToString());<br>                return e.ToString();<br>            }<br>        }<br><br>这就是文件的MD5加密<br><br>上课去了,上午还有线形代数课,等会儿回来继续。。。。。喜欢的就帮我顶顶,看不懂的就提问吧,呵呵,免费回答!</P>
[align=right][color=#000066][此贴子已经被作者于2007-10-31 9:37:55编辑过][/color][/align]

albert748 发表于 2007-10-31 09:46

<P>自己顶一个。。。。居然快要沉了。。。。哭</P>

toyou542 发表于 2007-10-31 09:49

yes,强烈要求更新!

albert748 发表于 2007-10-31 10:51

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

albert748 发表于 2007-10-31 17:18

没有人吗?

哈哈飞 发表于 2007-10-31 17:23

virusangel 发表于 2007-11-2 09:18

<P>顶一个,继续写吧</P>

unname 发表于 2007-11-2 13:13

顶你下。。。。。。

xueze 发表于 2007-11-2 16:57

MD5你自己写的吧??厉害哦~~<BR>   书上的那个DES我都还没会写呢  牛顶起

killer_l 发表于 2007-11-2 17:17

不错啊

Fly4201 发表于 2007-11-2 17:44

更新吧

deleter 发表于 2007-11-23 20:48

强人:Q 自愧不如

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.