教你给文件做md5校验

2003-06-18 18:48 | siyeclover

教你给文件做md5校验




cloud之所以要写这篇文档,是因为今天看到一位先生把PSO的光盘镜像下载了2遍。cloud估计他是无法判断自己下载的文件是否有损坏才这样做的,其实有更简单的办法来判断自己的文件是否和原始文件相同。鉴于共享资源版面的壮大,想必会有更多的人会遇到类似的问题,且猜测经常使用瘟都死的同学们对md5校验也许不是很了解,于是cloud决定写这么一篇文档。高手不必看了,这篇文档是写给不知道什么是md5校验的人的。
cloud之所以要把这篇文档发在web版而不是资源共享版,是希望可以有更多的人看到,希望此文可以减少他们将来可能会遇到的一些麻烦。

我们为何要做md5校验?
做md5校验的目的就是保证自己文件的完整性和唯一性,通俗的说,就是确认自己的文件是否真的就是自己想要的那个文件。似乎也有人把它叫“数字指纹”,就是那么回事了。
当你通过ftp或者别的方式得到了一个文件,你想知道自己得到的这个文件和原始文件是否是一样的,就可以给自己的文件做个md5校验,然后比较原始文件的md5校验码,若二者相同,说明你得到的文件和原始文件是一模一样的,否则就不是。一般正规的FTP站点,都会提供每个文件的md5校验码,这是为了大家都方便。
当你刚装好系统后就给自己的系统文件做了md5校验,过了一段时间你怀疑你被hack,某些文件被人换掉,那么就可以给那些怀疑的文件做个md5校验,若和从前得到的md5校验码不一样,那么可以肯定你是中招了,准备重做系统吧。
我们经常用到的,也就是上边两种情况了。
举两个例子把,你想知道你的pso.exe是否和cloud的pso.exe完全一样,那么各自做个md5校验,若相同那么就是一样的文件了。比较文件大小,时间这些都是不科学的(虽然有时很有用)。
若你装好系统就给那些命令文件做了md5校验,过段时间你怀疑你的netstat.exe有问题,那么就可以给现在的netstat.exe做个md5校验,对比一下原来的md5检验码,就可以知道是否被人换了。其实利用log文件,可以一次对比大量的文件。

那么我们怎么给文件做md5校验呢?
请到下边地址下载那个叫做UnxUtils.zip的文件,此文件大概3.2M左右。这是一个GNU软件包,里面有很多Unix下工具的win32版本,今天我们需要使用的是md5sum.exe这个程序,这个程序在UnxUtils\usr\local\wbin目录里。其它的程序也很有用,有兴趣可以试试。
http://www.weihenstephan.de/~syring/win32/UnxUtils.zip

打开一个命令行界面,你可以试试运行下边的命令,大概会得到下面的结果。
c:\UnxUtils\usr\local\wbin>md5sum.exe zip.exe
5e832f4faf5f481f2eaf3b3a48f603b8 *zip.exe

md5sum最简单的使用方法就是md5sum 后边跟上要校验的文件的名字然后回车,注意文件路径,否则就会找不到文件。
md5sum也可以对大量文件同时进行校验计算,也可以利用重定向生成log文档,这些高级一点的应用,请各位自己慢慢学习吧。

虽然cloud不想废话,但担心有的同学不知道什么是“命令行界面”,所以必须罗嗦一下。
通俗的说,瘟都死里的“命令行界面”就是大家说的“DOS窗口”,点击“开始”,点“运行”,输入“command”后回车,NT系统可以输入“cmd”,就打开一个命令行界面,md5sum.exe就在这里执行。
或许有瘟都死下图形界面的md5校验程序,但cloud只知道瘟都死下的这个GNU版本,恕cloud无法提供有图形界面的md5sum。



以下内容提供给兴趣大一点的同学。

这里是一篇md5简介以及java实现的文档。
http://www.yesky.com/20021018/1635646.shtml

若对md5的算法有兴趣,可以看看这篇文档。
http://www.xqsoft.com/encrypt/md5sfsm.htm

什么是GNU?
GNU就是GNU's Not Unix,若有兴趣,可以看看这几篇文档,你或许会看到一个从前从没听说过也没有想过的世界。(fantastic,我给你的GPL你有没有认真看?)
http://www.linuxforum.net/doc/gnu.html
http://www.linuxforum.net/doc/GPL.html
http://www.linuxforum.net/doc/freesoftware.html
http://www.linuxforum.net/doc/fsf.html


以上
喜欢魉呼的siyeclover
06-18-2003 18:36


-

感谢chocobo提供图片,
感谢Fires编辑并提供存储空间。


“假如我能相信此刻的快乐,我愿祈祷它成为永恒...”