复制文件后发现文件md5值变了,什么道理?

来源:百度知道 编辑:UC知道 时间:2024/05/09 03:05:27
我的一台电脑挂了2个硬盘,一个ST 200G,一个ST 120G,从200G硬盘复制几个AVI文件到120G硬盘,用VirtualDubMod打开其中一个文件,导入数据流后提示“有一个包丢失”,在35分22秒处,实际拖动到那个地方,肉眼看不出来有任何损坏,于是我用MD5码校验,发现文件md5值和源文件不同了,我又验了其他几个文件,都是700M左右的AVI文件,有些文件MD5值和原来文件一致,有些变了,大概4个文件,有2个文件MD5变了,2个没问题,这些MD5值发生变化的文件,去看它的文件大小(精确到字节)都和原文件一样,就是MD5不同了,我查了硬盘没坏道,写入数据读取数据都很快,不止为什么会出现这样,我把电脑关了,去吃晚饭,回来再开机,复制了同样这4个文件,又一切正常,不知道怎么回事?哪位回答下
这种情况,的确也是我使用电脑8年来第一次遇到的,以前复制文件没有发现过错误,这次也是偶然机会发现丢包才去用md5校验的,当天晚上我从另外一台电脑(通过网线连接的)复制RAR和EXE文件过来,也出现解压失败和安装中断的现象,再复制一次就没问题了,我怀疑是当时200G这个硬盘有点问题,可是也查不出坏道。也就是说从200G硬盘复制数据到120G硬盘,部分文件MD5值发生改变,同时从另一台电脑复制数据到200G硬盘也发生部分文件MD5改变现象,关机半小时以后,复制同样文件没有问题,至今(大约2天了)还没再次重现过,不知道今后还会不会重现,查坏道都查不出(diskman查的),平时读写数据最快都在50M/S这样,不像有坏道,是200G硬盘问题还是120G硬盘问题,还是非硬盘问题?毕竟不可能每个文件都去校验MD5值,到发现RAR解压不了,已经晚了,有什么办法确诊和避免么?

再补充下,当时还有个很奇怪的现象,那个从另一台电脑通过网线复制过来的RAR文件,解压缩的时候提示CRC错误,解压失败,但是WINRAR有提供一个测试解压功能,测试过程又没问题,实际去解压提示说CRC错误,可见丢弃的是一个非常微小的数据包,否则测试解压肯定会提示有问题的。

MD5不一样,就说明文件肯定不一样,这个是绝对的事实!绝对!
一般硬盘复制,出现文件变化的情况还比较少见。我平时用U盘的时候倒见过好几次文件复制的时候和原版不一样,多是些劣质U盘。
文件大小完全一样,不能说明问题,出现文件变化并不只是增加或减少了几个字节,还更可能是中间某些字节的内容发生了变化。改变一个字节要比增加(或减少)一个字节容易很多。如果你编过二进制文件操作一类的程序就更能明白我说的道理。
视频文件出现某些数据丢失,还照样能播放这也是比较正常的。给你个简单的类比吧,图片文件,如果是BMP格式的话,它主体部分每三个字节代表一个像素的信息,要是某几个字节发生了改变,也就是说图片中几个像素值有失真,对整体效果是不影响的,肉眼根本看不出来。但是如果你复制的是RAR等带无损压缩或自校验的文件格式的话,就没那么幸运了。往往差错一个字节都不能正常打开。
通过数据线传输数据,差错一两个字节是在所难免的。或许你会问,那为什么在网络特别不好的情况下从互联网上下载东西的时候照样一字不差呢?那是因为网络传输(主要是TCP/IP)是带校验的(一般是CRC32算法,完全类似于MD5),凡是校验不通过数据包的就丢掉重新传。只不过这些,我们毫无察觉,都由网卡或操作系统完成了。

  应该是复制过程中出现数据不完整的现象。U盘就是容易出现这个问题的,传输不稳定,换一个U盘试试,或者重新复制,应该没问题的。
  MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变。

这是不可能的,如果变了,只能说明你的文件已经改变了.MD5是检测文件是否修改的最佳方法,你很清楚的

这种情况,如果排除了硬盘、U盘的问题,一般都是内存条的问题。内存条出现质量缺陷了,或者兼容性不行。如果你的电脑上有多根内存条,建议用排除法一根一根的尝试了。
需要准备好一批文件(比如50个左右),每个文件要有一定的大小(比如1GB以上)。

正常情况