天天看点

网上下载文件完整性验证方法(以Ant为例window版)

概述:

有时候在网上下载文件是否源文件(官方发布的版本)?是否被人篡改过?我们如何验证这些完整性。这里涉及三种校验方法pgp 、MD5、SHA1。本质上,由源文件采用对应算法生成一个字符串。如果源文件改过那么生成的字符串和官方给不一样。这里以Apache Ant 下载的文件为例

1、PGP(Pretty Good Private)

PGP(Pretty Good Privacy),是一个基于RSA公钥加密体系的邮件加密软件。可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。它可以提供一种安全的通讯方式,而事先并不需要任何保密的渠道用来传递密匙。它采用了一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。而且它的源代码是免费的。(摘自百度百科)

需要一个PGP工具,下载地址:PGP工具

网上下载文件完整性验证方法(以Ant为例window版)

下载安装,

下载Apache Ant文件 和 对应PGP文件 ,以及KEYS(你可以理解钥匙)   地址:Apache Ant

网上下载文件完整性验证方法(以Ant为例window版)
网上下载文件完整性验证方法(以Ant为例window版)

下载完:

网上下载文件完整性验证方法(以Ant为例window版)

打开dos窗口:

gpg --import KEYS  导入钥匙环 (表示切换到有KEYS文件目录下)

网上下载文件完整性验证方法(以Ant为例window版)

导入钥匙环,就可以用下载文件.asc进行验证了 gpg --verify apache-ant-1.10.1-bin.zip.asc

网上下载文件完整性验证方法(以Ant为例window版)

pgp远远不止这些功能,可以参考百度百科的pgp介绍。

2、采用md5验证 

原理:用原始文件md5加密生成一个字符串。然后让你

这个版本的md5生成加密字符串:

0a4530999b71f92bf17ae823ed3b0b2d      

如何验证md5字符串呢,需要工具。下载地址:md5工具

网上下载文件完整性验证方法(以Ant为例window版)

下载完解压到任意磁盘目录下

网上下载文件完整性验证方法(以Ant为例window版)

为了方便将验证文件放置当前目录下

有dos命令切换到当前目录下

网上下载文件完整性验证方法(以Ant为例window版)

你会发现,什么也没有输出怎么知道,成功没?这时候需要自己动手写一个md5script.bat文件,内容如下

@echo off
md5 -c%1 %2
IF NOT errorlevel 1 GOTO valid
echo Signature not valid.
GOTO end
:valid
echo Signature valid.
:end
           

这个脚本意思执行过程是否异常,如果有异常就是打印签名无效 ,反之亦然。 %1 (官方md5字符串) %2(验证源文件)表示占位符,等会运行这个脚本传入的参数

网上下载文件完整性验证方法(以Ant为例window版)

3、SHA1验证

这个和md5类似,只是加密算法不一样

工具地址:支持md5和SHA1验证   (不用安装)

网上下载文件完整性验证方法(以Ant为例window版)

点击SHA1 将字符串另存为*.sha1文件  fsum -jf -sha1 -c apache-ant-1.10.1-bin.zip.sha1

网上下载文件完整性验证方法(以Ant为例window版)

还是没有看出效果,要不先用-sha1加密源文件,然后比对验证生成字符串是否与官方给的相同

网上下载文件完整性验证方法(以Ant为例window版)

采用-sha1加密源文件,注意文件fsum.exe文件位置

网上下载文件完整性验证方法(以Ant为例window版)
网上下载文件完整性验证方法(以Ant为例window版)

打开验证文件 apache-ant-1.10.1-bin.zip.sha1  发现一样的。