防黑手 文件校验这几招就够了

樱子2017-09-28 15:08应用 标签:校验文件

不知大家是否注意到,尽管迅雷等下载软件可自动校验下载数据,但一些软件的下载页面(如Windows安装包的下载页面),除了给出软件的下载链接外,还会给出诸如MD5、SHA1、CRC32等文件校验码数据。那么,额外提供这样的校验数据到底起啥作用?作为普通用户,我们又该如何使用这些数据呢?

文件校验常常是指用诸如MD5、SHA1、CRC32值等在内的一种或多种校验码,检验网站上的文件和下载之后的文件的一致性的过程。校验码一般由若干长度的字符串组成,这些由字符串组成的校验码是经过验证程序,从文件内容计算出来的。因此,只要文件内容固定,校验码也就自然会是一个固定的串。同理,若文件被修改过,或下载、传送过程中产生了丢包或错误,那么下载或接收到的文件的校验码自然也会发生变化。例如:微软网站给出Windows 10 试用版ISO的校验码,而某系统网站也提供微软该版本的系统ISO下载,但我们担心此网站提供的是否为微软原版ISO,这时就可以用下载到的ISO生成校验码,与微软提供的校验码进行核对,若一致就说明下载到的ISO属于原版了。下面我们讲述的就是生成和核对文件校验数据的几种实用方法。

1. 右键属性查看法

如果经常要对文件进行校验,可给Windows系统安装校验插件程序HashTab 4.0。安装之后,属性校验的功能将被集成到文件属性菜单窗口中,当右键单击一个文件并选择“属性”后,属性窗口中会增加一个HashTab选项卡,并显示正在校验此文件的进度条(图1);根据文件长度,经过不同时间的等待后,在算法和哈希值列表窗口中,会显示出3种不同的校验值(图2)。

1710A-WJJY-1

1710A-WJJY-2

虽然文件校验默认显示的算法仅有如图所示的3种,但实际上,该软件所包含的校验算法绝不仅限于此3种。通过右键单击哈希值列表,选择进入选项窗口,可以从十多种算法中选择其他更多的校验方法(图3)。

1710A-WJJY-3

小提示:

文件上网前若要给出校验值,可用此法生成校验码并粘贴于网上。同理,下载了文件后也可用此法获得校验码,与网上给出的校验码对比,可知文件内容的一致性。

2. 拖动计算属性法

如果不经常使用文件校验,就没必要装插件给文件右键属性增加负担。只需改用一款绿色校验软件Hash_V1.04,将要校验的文件拖动到该软件窗口,稍候即可自动生成文件的MD5、SHA1、CRC32等校验值(图4)。校验之后,可通过“复制”和“保存”按钮,方便地将校验值留存备用。

1710A-WJJY-4

此外还用另一款类似软件Hash校验工具V1.4.2版,除可生成上述三种检验值外,另增一种更复杂的SHA256校验。用此软件可以将多个文件或文件夹一次拖放到窗口内进行校验;同时还能进行哈希值字符串查找,如果一次校验的文件较多,可通过此功能快速找到某文件对应的校验码或某校验码对应的文件(图5)。

1710A-WJJY-5

小提示:

Hash校验工具V1.4.2版中暗藏有添加“右键菜单”、“发送菜单”、“窗口置顶”等功能,可实现更方便的操作。只需在软件标题栏上点击鼠标右键,在弹出的菜单中进行选择即可(图6)。

1710A-WJJY-6

3. 使用PowerShell校验文件

在Windows 10中,还可以通过PowerShell窗口命令进行文件校验。PowerShell默认的命令行“Get-FileHash 文件路径| Format-List”可给出文件的SHA256校验码。如果使用“Get-FileHash 文件路径 -Algorithm 验证内容| Format-List”命令,将“验证内容”替换为SHA1、MD5等多种形式,则可以给出相应类型的校验码(图7)。注意文件路径中含有空格时需要加上半角引号,另外PowerShell文件校验不支持CRC32。

1710A-WJJY-7

扩展阅读:如何应对“偷梁换柱”

尽管上述文件校验能够保证下载后的文件和网上的文件的绝对一致性。但是,由于别人很容易将原版软件进行修改,并将修改后软件的校验码拿来冒充原版软件的校验码,因此用户仍然有可能上当。因此,急需要一种能应对这种危机的校验方法。MAC(消息校验码)应运而生。MAC是文件接收和发送双方实现约定的一个字符串,当接收方收到文件之后,用原文件和约定的MAC串一并计算文件的HASH值,如此的计算是在接收方拿到文件之后进行的,第三方无法中途截获MAC,仅有文件内容是无法算出正确的HASH值的,因此保证了文件的原样性,杜绝了造假。