天天看點

網上下載下傳檔案完整性驗證方法(以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  發現一樣的。