Linux命令 md5sum - 計(jì)算和校驗(yàn)文件報(bào)文摘要的工具程序

2022-03-11 11:02 更新

md5sum

計(jì)算和校驗(yàn)文件報(bào)文摘要的工具程序

補(bǔ)充說明

md5sum命令 采用MD5報(bào)文摘要算法(128位)計(jì)算和檢查文件的校驗(yàn)和。一般來說,安裝了Linux后,就會(huì)有md5sum這個(gè)工具,直接在命令行終端直接運(yùn)行。

MD5算法常常被用來驗(yàn)證網(wǎng)絡(luò)文件傳輸?shù)耐暾?,防止文件被人篡改。MD5 全稱是報(bào)文摘要算法(Message-Digest Algorithm 5),此算法對(duì)任意長度的信息逐位進(jìn)行計(jì)算,產(chǎn)生一個(gè)二進(jìn)制長度為128位(十六進(jìn)制長度就是32位)的“指紋”(或稱“報(bào)文摘要”),不同的文件產(chǎn)生相同的報(bào)文摘要的可能性是非常非常之小的。

語法

md5sum(選項(xiàng))(參數(shù))

選項(xiàng)

-b:二進(jìn)制模式讀取文件;
-t或--text:把輸入的文件作為文本文件看待;
-c:從指定文件中讀取MD5校驗(yàn)和,并進(jìn)行校驗(yàn);
--status:驗(yàn)證成功時(shí)不輸出任何信息;
-w:當(dāng)校驗(yàn)不正確時(shí)給出警告信息。

參數(shù)

文件:指定保存著文件名和校驗(yàn)和的文本文件。

實(shí)例

使用 md5sum 生成密碼

另一種獲取可用作密碼的隨機(jī)字符串的方法是計(jì)算 MD5 校驗(yàn)值!校驗(yàn)值看起來確實(shí)像是隨機(jī)字符串組合在一起,我們可以用作密碼。確保你的計(jì)算源是個(gè)變量,這樣的話每次運(yùn)行命令時(shí)生成的校驗(yàn)值都不一樣。比如 date !date 命令 總會(huì)生成不同的輸出。

[root@localhost ~]# date | md5sum
6a43f2c246cdc3e6a3592652f831d186  -

生成一個(gè)文件insert.sql的md5值:

[root@localhost ~]# md5sum insert.sql
bcda6cb5c704664f989703ac5a88f112  insert.sql

檢查文件testfile是否被修改過:

首先生成md5文件:

md5sum testfile > testfile.md5

檢查:

md5sum testfile -c testfile.md5

如果文件沒有變化,輸出應(yīng)該如下:

forsort: OK

此時(shí),md5sum命令返回0。

如果文件發(fā)生了變化,輸出應(yīng)該如下:

forsort: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match

此時(shí),md5sum命令返回非0。

這里,檢查用的文件名隨意。如果不想有任何輸出,則md5sum testfile --status -c testfile.md5,這時(shí)候通過返回值來檢測結(jié)果。

檢測的時(shí)候如果檢測文件非法則輸出信息的選項(xiàng):

md5sum -w -c testfile.md5

輸出之后,文件異常輸出類似如下:

md5sum: testfile.md5: 1: improperly formatted MD5 checksum line
md5sum: testfile.md5: no properly formatted MD5 checksum lines found

這里,testfile.md5只有一行信息,但是我認(rèn)為地給它多加了一個(gè)字符,導(dǎo)致非法。如果md5文件正常那么-w有沒有都一樣。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)