复制文件后文件md5值变了,是因为md5值是独一无二的“数字指纹”。每个文件都不会相同。
MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
使用 MD5算法就可以为任何文件(不管其大小、格式、数量)产生一个独一无二的“数字指纹”。文件的MD5 值的作用就在于对操作得到的文件用专门的软件(如 Windows MD5 check 等)做一次 MD5 校验,通过检查文件前后 MD5 值是否发生了改变,就可以知道源文件是否被改动。
扩展资料:
MD5信息摘要算法可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。
1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
MD5不一样,就说明文件肯定不一样,这个是绝对的事实!绝对!
一般硬盘复制,出现文件变化的情况还比较少见。我平时用U盘的时候倒见过好几次文件复制的时候和原版不一样,多是些劣质U盘。
文件大小完全一样,不能说明问题,出现文件变化并不只是增加或减少了几个字节,还更可能是中间某些字节的内容发生了变化。改变一个字节要比增加(或减少)一个字节容易很多。如果你编过二进制文件操作一类的程序就更能明白我说的道理。
视频文件出现某些数据丢失,还照样能播放这也是比较正常的。给你个简单的类比吧,图片文件,如果是BMP格式的话,它主体部分每三个字节代表一个像素的信息,要是某几个字节发生了改变,也就是说图片中几个像素值有失真,对整体效果是不影响的,肉眼根本看不出来。但是如果你复制的是RAR等带无损压缩或自校验的文件格式的话,就没那么幸运了。往往差错一个字节都不能正常打开。
通过数据线传输数据,差错一两个字节是在所难免的。或许你会问,那为什么在网络特别不好的情况下从互联网上下载东西的时候照样一字不差呢?那是因为网络传输(主要是TCP/IP)是带校验的(一般是CRC32算法,完全类似于MD5),凡是校验不通过数据包的就丢掉重新传。只不过这些,我们毫无察觉,都由网卡或操作系统完成了。
应该是复制过程中出现数据不完整的现象。U盘就是容易出现这个问题的,传输不稳定,换一个U盘试试,或者重新复制,应该没问题的。
MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”。任何一个文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息值,并且如果这个文件被修改过,它的MD5值也将随之改变。
这种情况,如果排除了硬盘、U盘的问题,一般都是内存条的问题。内存条出现质量缺陷了,或者兼容性不行。如果你的电脑上有多根内存条,建议用排除法一根一根的尝试了。
需要准备好一批文件(比如50个左右),每个文件要有一定的大小(比如1GB以上)。
正常情况下复制文件是不可能出现MD5值改变的,一定是复制前后的文件有动过手脚。比如用可以改写文件的软件查看过。或是复制过程中有非正常中断过。