【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 3198|回复: 0

【教学】用MD5、CRC对下载文件完整校验

[复制链接]
发表于 2006-7-18 11:18:50 | 显示全部楼层 |阅读模式
下载过分卷压缩文件,下载站点会同时提供一个扩展名为*.sfv、*.crc、*.md5的文件。这些文件并不大,一般才几百字节而已,这是用来校验所下载的文件是否完整的一个重要文件。

由于网络的不稳定性,在下载或上传过程中经常会发生数据丢失的问题,如果是小文件那还比较好办,只要重新下载或上传一个就是了。但假如数据量比较大,例如达到数百兆或几个GB,那就比较麻烦了。再说,你下载的文件可能还被某些恶意用户非法添加了病毒或木马程序,这样就可能会给你的数据带来损失。

在宽带普及的今天,数百兆甚至GB级文件的上传下载虽然早已不再是什么问题,但大文件的传输毕竟还是有很多不太方便的地方,假如文件在数据传输过程中出了问题而受损(文件越大,则损坏的概率越高),那么整个文件就失去作用,你可能被迫重新上传或下载。正因如此,越来越多的站点提供了RAR格式的分卷压缩文件,即使某个分卷压缩包受损,用户的损失也不会太大。

上面提到的*.sfv、*.crc、*.md5文件,正是提供给用户用来检验下载的文件是否完整的一个重要工具。我们可以根据*.sfv文件判断下载回来的各个分卷压缩包是否受损,同时还可以判断究竟是哪一个分卷文件受损,这样你就只需要单独下载或上传相应的分卷文件即可。

目前比较常见的校验方式有SFV、MD5、CRC等:

SFV
SFV的完整名称是“Simple File Verification”,一般用于检查分卷压缩包是否存在错误。如果有错误,赶快去重新下载相应的分卷压缩包,这样在解压缩时就不会出现讨厌的CRC错误了。

MD5
MD5的完整名称应该是“Message Digest Algorithm 5,信息摘要算法5”,这是麻省理工学院计算机科学实验室(MIT Laboratory for Computer Science)和RSA数据安全公司(RSA Data Security Inc)联合研制的一种文件校验技术,这里的MD5表示第5版本。

从技术原理上讲,MD5是将一个任意长度的字符串变换成一个128位的大整数,而且这是一个不可逆的变换算法,也就是说即使你看到了MD5的源程序和变换算法,也无法将一个MD5值变换回原始的字符串。很多软件的官方站点在提供下载文件时,就会同时给出相应的MD5校验码,用户下载后可以根据这个校验码检查下载的文件是否完整。
我们并不需要借助专门的第三方工具软件来创建校验文件,因为著名的文件管理工具Total Commander已经为我们提供了创建或校验SFV文件的功能。

打开Total Commander程序,切换到分卷压缩文件存放的文件夹,选中所有的分卷压缩文件,被选中的文件将会以红色显示,然后从“文件”菜单下选择“创建CRC校验文件(SFV格式)”命令。此时会弹出对话框,一般不用更改选项,如果需要创建MD5校验文件请复选“MD5”项,然后直接点击“确定”按钮即可。以后在上传分卷压缩文件时,可以将之与刚才创建的那个SFV文件放在一起提供下载。

如果需要校验SFV文件,将分卷压缩包与SFV文件放在同一路径下。选中SFV文件后从“命令”菜单下选择“检验CRC校验文件(SFV格式)”项,然后我们会看到检验进度框,会显示每个分卷压缩文件的校验结果,如果全部显示为“CRC正确”,那就说明分卷压缩文件下载时无任何问题。CRC32校验产生32bit(8位十六进制数)校验值,所以一般大家看见的文件“SFV值”是一个8位的16进制数。 由于CRC32产生校验值时源数据块的每一个bit位都参与了計算,所以数据块中即使一位bit发生变化,也会得到不同的CRC32值。

MD5方式

MD5是一种单向散列算法,MD5值也叫单向散列函数,是一个信息摘要算法的名称。它通过一定的算法(任何有关应用密码学的书里都有具体的算法表述),根据源数据的每一位bit最终产生一个128bit(32位十六进制数)的校验值。由于长度达到一定的要求,所以在密码学领域中有一定应用。它不像CRC校验码,很难找到一份替代的文件与原件具有同样的MD5特征值。
比较常见的MD5校验工具有MD5Summer、WinMD5,前者稳定性非常好,检验速度不如后者。
WinMD5的使用极其简单,只要将需要计算MD5值的文件直接拖放到WinMD5的主界面框中,在“Hash”列表中就可以显示相应的MD5值了。需要校验MD5值时,同样只需将相应的源文件和MD5文件拖放到WinMD5的主界面框中,然后WinMD5就会自动根据MD5文件中的描述对相关文件进行自动校验。校验结果同样会显示出来,如果显示为“Good”的话则说明未被修改,显示为“BAD”则说明该文件可能已受损或被修改过。

虽然WinMD5和MD5Summer都可以创建或校验MD5文件,但由于文件结构方面的区别,我们应该使用对应的软件进行校验,否则可能会显示错误信息。不过,只要使用Total Commander一款软件就足够了,无论是SFV还是MD5,Total Commander一律通杀。

最常见的是大家在讨论xp是否原版时,要求提供MD5值或CRC值,这个说法不准确,因为xp是否完整,关键是看I386下的文件是否被修改或损坏。xp系统文件除I386外,还有其他几个文件,这几个文件用途不同,可用可不用,如win51、win51ip是光盘启动安装必备文件,support是安装支持即第三方软件,setup.exe是windows下安装可执行文件等等,但核心文件、具体的安装文件还是I386,所以,只需要看I386的MD5值即可。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2025-2-6 06:50

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表