Chinaunix首页 | 论坛 | 博客
  • 博客访问: 443191
  • 博文数量: 403
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -70
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-05 12:45
文章分类

全部博文(403)

文章存档

2014年(3)

2013年(1)

2012年(3)

2011年(21)

2010年(13)

2009年(64)

2008年(9)

2007年(36)

2006年(253)

分类: 服务器与存储

2006-09-15 16:49:54

忘记从哪里查到了,好象是百度搜的,当初做3G手机项目的时候找的,作个备份吧,哎
 
MD5在论坛上、软件发布时经常用,是为了保证文件的正确性,防止一些人盗用程序,加些木马或者篡改版权,设计的一套验证系统。每个文件都可以用MD5验证程序算出一个固定的MD5码来。软件作者往往会事先计算出他的程序的MD5码并帖在网上。因此,在网上看到某个程序下载旁注明了MD5码时,可以把它记下来,下载了这个程序后用MD5验证程序计算你所下载的文件的MD5码,和你之前记下MD5码比较,就知道你下的是不是原版了,如果两者相同,那么你所下载的是原版。如果计算出来的和网上注明的不匹配,那么你下载的这个文件不完整,或是被别人动过手脚。
——————————————————
MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。
  Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。请注意我使用了“字节串”而不是“字符串”这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关。
  MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
   MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
  MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的, 用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,而系统并不“知道”用户的密码是什么。
4、MD5存在的问题:如果我们把原版用不同的工具制作一下iso,看看md5值还一样吗?肯定是不一样的。再用crc校验,数值肯定是一样的。因为,MD5是校验的文件,CRC校验的是光盘。也就是说网上流传的同样是原版镜像的MD5值不同的镜像文件可以有很多,但CRC值是都是相同的。并且,MD5不能用来校验光盘。
5、建议:用CRC校验是不是原版copy或者镜像。如果下载文件,提供下载者给出MD5值,可以用MD5校验(但这个值和是不是原版镜像没有必然联系,只能校验下载过程种有没有出现问题)。
6、CRC校验的疑问
从结果上看,AutoCRC 只是说这个 .ISO 是有效的(VALID )。但是它并没有告诉我,我所 CRC 的这个文件是不是和别的 505M 的 .ISO 文件一样。也就是说,只要是成功的从任何光盘上镜像到硬盘上的 ISO 文件,用 CRC 校验都是正确的,或者 VALID 的,对不对?。
错!
A、用cdimage制作光盘的时候要加入-x参数,制作成功后才能通过crc校验。如果修改了原光盘,肯定不能通过(在没有重新加入crc校验的情况)。1p|gG
B、通过后,还要看里面的具体数值是不是和原版一致!L
MD5:一种消息摘要算法(也叫单向散列函数)的名称。它通过一定的算法,根据源数据的每一位(bit)最终产生一个128位(bit)的校验值(一个32位的16进制数)。MD5最常见的应用是在密码学里,本文中主要用它来校验文件完整性——如果你觉得上述文字难以理解,那么可以简单的认为MD5就是一种128位的数字签名,用于校验文件是否被修改过即可。
CRC.EXE:光盘介质测试软件,微软在win2000以后在光盘加了此验证信息。
 
阅读(1763) | 评论(0) | 转发(0) |
0

上一篇:Unix编程基础

下一篇:BT协议集合

给主人留下些什么吧!~~