溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

【我的Linux,我做主!】淺談MD5校驗(yàn)文件完整一致性

發(fā)布時(shí)間:2020-07-01 11:13:53 來(lái)源:網(wǎng)絡(luò) 閱讀:916 作者:Tom王 欄目:系統(tǒng)運(yùn)維

目錄:
(一)MD5介紹
(二)md5sum命令
(三)實(shí)戰(zhàn)演練


(一)MD5介紹
(1.1)MD5即Message-Digest Algorithm 5(信息-摘要算法 第5版),用于確保信息傳輸完整一致。是計(jì)算機(jī)廣泛使用的雜湊算法之一(又名:摘要算法、哈希算法),主流編程語(yǔ)言普遍已由MD5實(shí)現(xiàn)。將數(shù)據(jù)運(yùn)算為另一固定長(zhǎng)度值(十六進(jìn)制的為32位),是雜湊算法的基礎(chǔ)原理,MD5的前身有MD2、MD3和MD4。MD5的作用是大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被“壓縮”成一種保密的格式(就是把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)的十六進(jìn)制數(shù)字串)。除了MD5以外,其中比較有名的還有sha-1、RIPEMD以及Haval等。
(1.2)在網(wǎng)絡(luò)傳輸、設(shè)備之間轉(zhuǎn)存、復(fù)制大文件等時(shí),可能出現(xiàn)傳輸前后數(shù)據(jù)不一致的情況。這種情況在網(wǎng)絡(luò)這種相對(duì)更不穩(wěn)定的環(huán)境中,容易出現(xiàn),那么校驗(yàn)文件的完整性,也是勢(shì)在必行的。


(二)md5sum命令
(2.1)md5sum命令用于生成和校驗(yàn)文件的md5值,它會(huì)逐位對(duì)文件的內(nèi)容進(jìn)行校驗(yàn),校驗(yàn)的是文件的內(nèi)容,與文件名無(wú)關(guān),即文件內(nèi)容相同,其md5值相同。md5值是一個(gè)128位的二進(jìn)制數(shù)據(jù),轉(zhuǎn)換成16進(jìn)制則是32位(128/4)的進(jìn)制值。md5校驗(yàn),有很小的概率不同的文件生成的md5可能相同,比md5更安全的校驗(yàn)算法還有SHA系列的。在網(wǎng)絡(luò)傳輸時(shí),我們校驗(yàn)源文件獲得其md5sum,傳輸完畢后,校驗(yàn)其目標(biāo)文件,并對(duì)比如果源文件和目標(biāo)文件md5一致的話,則表示文件傳輸無(wú)異常,否則說(shuō)明文件在傳輸過(guò)程中未正確傳輸。
(2.2)用法:md5sum [選項(xiàng)] [文件],顯示或檢查MD5(128-bit)校驗(yàn)和,若沒(méi)有文件選項(xiàng),或者文件處為“-”,則從標(biāo)準(zhǔn)輸入讀取。校驗(yàn)和會(huì)按照RFC 1321規(guī)范生成,當(dāng)進(jìn)行檢查時(shí),給出的輸入格式應(yīng)該和程序的輸出樣板格式相同,默認(rèn)的輸出模式時(shí)輸出一行校驗(yàn)和校驗(yàn)結(jié)果,并有一個(gè)字符來(lái)表示文件類型(“*”代表二進(jìn)制,“ ”空格代表純文本),并同時(shí)顯示每個(gè)文件的名稱。
-b,--binary:以二進(jìn)制模式讀取
-c,--check:從文件中讀取MD5的校驗(yàn)值并予以檢查
-t,--text:以純文本模式讀?。J(rèn))
以下三個(gè)選項(xiàng)在進(jìn)行校驗(yàn)時(shí)非常有用:
--quiet:不為校驗(yàn)成功的文件輸出OK
--status:不輸出任何內(nèi)容,使用退出狀態(tài)號(hào)顯示成功
-w,--warn:對(duì)格式不正確的校驗(yàn)和進(jìn)行警告
--strict with,--check:exit non-zero for any invalid input
--help:顯示此幫助信息并退出
--version:顯示版本信息并退出
(2.3)我們可以使用--help查看幫助信息
# md5sum --help
【我的Linux,我做主!】淺談MD5校驗(yàn)文件完整一致性


(三)實(shí)戰(zhàn)演練
(3.1)獲取字符串的MD5值,字符串“hello”的MD5,我們使用md5sum用來(lái)顯示或檢查MD5(128-bit)校驗(yàn)和,若沒(méi)有文件選項(xiàng),或者文件出為“-”,則從標(biāo)準(zhǔn)輸入讀取,cut用來(lái)從標(biāo)準(zhǔn)輸入或文本文件中剪切列或域,剪切文本可以將之粘貼到一個(gè)文本文件,-d指定域空格和tab鍵不同的域分隔符,-f1表示第一個(gè)域。
# echo -n "hello" | md5sum | cut -d ' ' -f1---獲取字符串的MD5值
【我的Linux,我做主!】淺談MD5校驗(yàn)文件完整一致性
(3.2)獲取文件的MD5值,我們使用了從download.qt.io下載的源碼包qt-4.8.6,可以使用下面的命令從官網(wǎng)下載,然后再計(jì)算出文件的MD5值。
# wget http://download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz ---將軟件從官網(wǎng)下載下來(lái)
# md5sum qt-everywhere-opensource-src-4.8.6.tar.gz | cut -d '' -f1---獲取qt-4.8.6源碼包的MD5值
【我的Linux,我做主!】淺談MD5校驗(yàn)文件完整一致性
【我的Linux,我做主!】淺談MD5校驗(yàn)文件完整一致性
(3.3)使用MD5校驗(yàn)iso文件,進(jìn)行md5的校驗(yàn)我們需要首先知道文件的md5值,一般來(lái)說(shuō)文件的下載地址會(huì)為我們提供檢驗(yàn)用的md5文件,一般來(lái)說(shuō)這些文件使用如下的命令生成的,接著把qt-everywhere-opensource-src-4.8.6.tar.gz和其驗(yàn)證文件qt-everywhere-opensource-src-4.8.6.tar.gz.md5放到同一目錄下(圖2-5),然后使用下面的命令進(jìn)行檢驗(yàn)(圖2-6)。
# md5sum qt-everywhere-opensource-src-4.8.6.tar.gz > qt-everywhere-opensource-src-4.8.6.tar.gz.md5---使用qt-4.8.6的源碼包生成一個(gè)md5文件
# mkdir md5test---創(chuàng)建一個(gè)md5test文件
# mv qt-everywhere-opensource-src-4.8.6.tar.gz qt-everywhere-opensource-src-4.8.6.tar.gz.md5 md5test/---將qt-4.8.6的源碼包和驗(yàn)證文件放到統(tǒng)一目錄下
# md5sum -c qt-everywhere-opensource-src-4.8.6.tar.gz.md5---使用md5sum檢驗(yàn)下載文件的完整性
【我的Linux,我做主!】淺談MD5校驗(yàn)文件完整一致性
【我的Linux,我做主!】淺談MD5校驗(yàn)文件完整一致性
(3.4)當(dāng)然我們下載的文件,用md5進(jìn)行檢驗(yàn)是檢查下載文件的完整性,自然不能用自己生成的md5校驗(yàn)文件,一般來(lái)說(shuō)文件的下載網(wǎng)站會(huì)為我們提供檢驗(yàn)用的md5文件,其中qt-everywhere-opensource-src-4.8.6.tar.gz的md5校驗(yàn)文件可以從http://download.qt.io/archive/qt/4.8/4.8.6/md5sums-4.8.6 來(lái)下載,我們可以查看md5sums-4.8.6中的內(nèi)容。
# wget http://download.qt.io/archive/qt/4.8/4.8.6/md5sums-4.8.6 ---下載校驗(yàn)文件
# cat md5sums-4.8.6---查看校驗(yàn)文件中的內(nèi)容
【我的Linux,我做主!】淺談MD5校驗(yàn)文件完整一致性
(3.5)最后我們將qt-everywhere-opensource-src-4.8.6.tar.gz軟件和md5sums-4.8.6校驗(yàn)文件都放置在/root/家目錄中,然后進(jìn)行文件的校驗(yàn)。此時(shí)我們發(fā)現(xiàn)第一個(gè)文件是確定存在的,其他的由于沒(méi)有下載顯示打開(kāi)失敗,因此校驗(yàn)有效。
# md5sum -c md5sums-4.8.6
【我的Linux,我做主!】淺談MD5校驗(yàn)文件完整一致性

—————— 本文至此結(jié)束,感謝閱讀 ——————

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI