怎样验证文件完整性?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样验证文件完整性?相关的知识,希望对你有一定的参考价值。

我在龙帝国技术社区下载了Windows7Build6956,下载很顺利,但我担心文件不完整,而且用纳米机器人下载的,上次的Windows76801就是因为不完整而安装失败的,希望这次不要再失败啊!

比较常用的有两种

MD5验证上传文件的完整性
任何一个字符串或文件,无论是可执行程序、图像文件、临时文件或者其他任何类型的文件,也不管它体积多大,都有且只有一个独一无二的MD5信息码,并且如果这个文件被修改过,它的MD5码也将随之改变。只需要简单地调用即可得到 MD5 的128 位整数。然后将此 128 位计 16 个字节转换成 16 进制表示即可。

OSS 校验上传文件的完整性
OSS上的object会有etag标签,etag主要是用来判断服务端数据是否存在变化。但是,这个标签并不一定等同于文件的MD5值,所以不建议作为校验数据一致性的依据。

如果需要校验上传到OSS的文件和本地文件是否一致,可以在上传文件时携带文件的Content-MD5值,这时OSS服务端会帮用户进行MD5校验,只有在OSS服务器接收到的文件MD5值和Content-MD5一致时才可以上传成功,从而保证上传数据的一致性。
参考技术A MD5的全称是Message-Digest
Algorithm
5,在90年代初由MIT的计算机科学实验室和RSA
Data
Security
Inc发明,经MD2、MD3和MD4发展而来。百度百科有很具体的解释,但是本人看后觉得解释的乱的很,我在这里大概的说下,MD5其实就是一串字符,这串字符是从一个文件或程序中按照一定方法提取出来的,所以我们只要把收到的文件的MD5码和软件提供者给的MD5相比较就可以基本确定文件的完整性,保证没有被中途修改过。和文件加密的目的一样,保证文件的完整性和安全性。
但是有些电脑新手就会对如何查询一个软件或文件的MD5头疼,因为Windows并没有查询MD5码的功能,导致许多朋友只知道,但不知道怎么去利用起来,用好MD5对于日常下载软件什么的用处还是很大的哦。下面我就来具体说说怎么查看一个软件或文件的MD5码。
这里需要个软件,单击下载MD5码查询器。
1.打开软件,在粘贴原始MD5码中填上别人提供验证的MD5码。
2.然后点第二行的浏览,选择需要进行MD5码验证的文件,打开…
就会看到该软件的MD5码,若和提供的MD5相同,软件会提示验证成功,否则会弹出警告。
完了,是不是很简单啊,所谓难者不会,会者不难嘛!当然各位电脑高手看了后不要拍砖哈。
参考技术B 这样你可以看一下你下载的站点有没有提供MD5值,如果有的话,你需要下载一个MD5检测工具,对比一下网站上提供的MD5值,就可以知道有没有在下载的过程中受到损坏或修改 参考技术C md5验证码进行验证,对下载文件进行核对 参考技术D 可以进去看下,就知道老撒

怎样验证软件是否可信?是否被篡改?

证书除了可以用来验证某个网站,还可以用来验证某个文件是否被篡改。软件开发者需要购买代码签名证书给发布的软件签名,来验证软件代码的来源与完整性。后面专门告诉大家如何验证文件的数字签名。就拿 Windows 的例子来说吧。

比如,俺手头有一个 Firefox 的安装文件(带有数字签名)。当俺查看该文件的属性,会看到如下的界面。眼神好的同学,会注意到到上面有个“数字签名”的标签页。如果没有出现这个标签页,就说明该文件没有附带数字签名。
技术分享

选择该标签页,看到如下界面。

顺便说一下,某些数字签名中没有包含“邮件地址”,那么这一项会显示“不可用”;同样的,某些数字签名没有包含“时间戳”,也会显示“不可用”。不要紧张,这里显示的“不可用”跟数字签名的有效性没关系

技术分享

一般来说,签名列表中,有且仅有一个签名。选中它,点“详细信息”按钮。跳出如下界面:通常这个界面会显示一行字:“该数字签名正常”(图中红圈标出)。如果有这行字,就说明该文件从出厂到你手里,中途没有被篡改过(是原装滴、是纯洁滴)。技术分享

如果该文件被篡改过了(比如,感染了病毒、被注入木马),那么对话框会出现一个警告提示“该数字签名无效”(图中红圈标出)。界面如下:技术分享

不论签名是否正常,你都可以点“查看证书”按钮。这时候,会跳出证书的对话框。如下:技术分享技术分享

从后一个界面,可以看到俺刚才说的证书信任链。图中的信任链有3层:

第1层是根证书(Thawte Premium Server CA)。

第2层是 Thawte 专门用来签名的证书。

第3层是 Mozilla 自己的证书。 

目前大多数知名的公司(或组织机构),其发布的可执行文件(比如软件安装包、驱动程序、安全补丁),都带有数字签名。你可以自己去看一下。

建议大伙儿在安装软件之前,都先看看是否有数字签名?如果有,就按照上述步骤验证一把。一旦数字签名是坏的,那可千万别装。

以上是关于怎样验证文件完整性?的主要内容,如果未能解决你的问题,请参考以下文章

怎样验证软件是否可信?是否被篡改?

验证 CloudTrail 日志文件完整性

如何验证由 mongodump 操作产生的文件的完整性?

文件完整性hash验证demo(python脚本)

如何在 c++ 或 python 中验证图像文件的完整性?

完整性无法验证