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

来源:互联网 发布:程序员刷题书籍推荐 编辑:程序博客网 时间:2024/05/16 05:18
概述:

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

1、PGP(Pretty Good Private)

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

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


下载安装,

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



下载完:



打开dos窗口:

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


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

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

2、采用md5验证 

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

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

0a4530999b71f92bf17ae823ed3b0b2d

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


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


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

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


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

@echo offmd5 -c%1 %2IF NOT errorlevel 1 GOTO validecho Signature not valid.GOTO end:validecho Signature valid.:end
这个脚本意思执行过程是否异常,如果有异常就是打印签名无效 ,反之亦然。 %1 (官方md5字符串) %2(验证源文件)表示占位符,等会运行这个脚本传入的参数


3、SHA1验证

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

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


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


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


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



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

阅读全文
0 0
原创粉丝点击