Linux命令詳解:md5sum

1、簡介

MD5算法一般用於檢查文件完整性,尤其常用於檢測在(網絡)文件傳輸、拷貝、磁盤錯誤或其他無惡意涉入的情況下文件的正確性。MD5全稱報文摘要算法(Message-DigestAlgorithm 5)[RFC 1321],該算法對任意長度的信息進行逐位計算,產生一個二進制長度128位(十六進制長度32位)的校驗和(或稱“指紋”,“報文摘要”),不同的文件內容生成相同的報文摘要的概率是極其小的。

在Linux或Unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了Linux後,就會有md5sum工具,可以在命令行終端直接執行。

 
2、命令格式

md5sum [OPTION]... [FILE]...

 

命令選項

-b或 --binary:以二進制模式讀入文件;

-t或 --text:以文本文件模式讀入文件(默認);

-c或 --check:用來從文件中讀取md5信息檢查文件的一致性;

--status:該選項與check一起使用,在check時不輸出,根據返回值表示檢查結果;

-w或 --warn:在check時,檢查輸入的md5信息有沒有非法行,若有則輸出相應信息。

 
4、實例演示

1)生成一個文件的md5值,如下所示:

[root@HLZ test]# ll

total 16

-rw-r--r--1 root root 240 Sep 4 22:26 aaa_pkg.tgz

-rw-r--r--1 root root  11 Sep 4 22:01 aaa.txt

-rw-r--r--1 root root  46 Sep 4 22:24 bbb.log

drwxr-xr-x2 root root 4096 Sep 4 22:24 checksum

[root@HLZ test]#

[root@HLZ test]# md5sum aaa.txt > checksum/aaa.md5

這樣,就生成了文件aaa.txt的md5校驗文件aaa.md5,打開可以看到如下內容:

[root@HLZ test]# cat checksum/aaa.md5

d700cf9bb133858df4d3e0486848be78 aaa.txt

 

2)md5sum支持多個文件輸入或通配符

[root@HLZ test]# md5sum aaa.txt bbb.log aaa_pkg.tgz > checksum/all.md5

[root@HLZ test]# cat checksum/all.md5

d700cf9bb133858df4d3e0486848be78 aaa.txt

fff62b77988e5b9d83a2872bb2247b21 bbb.log

36eb58b2563f91baf61531aef126eea6 aaa_pkg.tgz

[root@HLZ test]# md5sum aaa* > checksum/aaa_all.md5

[root@HLZ test]# cat checksum/aaa_all.md5

36eb58b2563f91baf61531aef126eea6 aaa_pkg.tgz

d700cf9bb133858df4d3e0486848be78 aaa.txt

 

3)文件內容校驗

[root@HLZ test]# md5sum -c ./checksum/aaa.md5

aaa.txt:OK

[root@HLZ test]# md5sum -c ./checksum/all.md5

aaa.txt:OK

bbb.log:OK

aaa_pkg.tgz:OK

[root@HLZ test]# vi bbb.log     ---修改bbb.log文件內容,添加7個0

abceefghijklmnopqr0000000stuvwxyz1234567890987654321

[root@HLZ test]# md5sum -c ./checksum/all.md5

aaa.txt:OK

bbb.log: FAILED

aaa_pkg.tgz:OK

md5sum: WARNING: 1 of 3 computed checksums did NOT match

[root@HLZ test]#

 

4)文件路徑的考慮($PWD即當前路徑/home/hanlzh/test/)

[root@HLZ test]# pwd

/home/hanlzh/test

[root@HLZ test]# md5sum $PWD/aaa.txt > ./checksum/aaa.md5

[root@HLZ test]# cat checksum/aaa.md5

d700cf9bb133858df4d3e0486848be78 /home/hanlzh/test/aaa.txt

[root@HLZ test]# md5sum -c ./checksum/aaa.md5

/home/hanlzh/test/aaa.txt:OK

[root@HLZ test]# cd ..

[root@HLZ hanlzh]# md5sum -c ./test/checksum/aaa.md5

/home/hanlzh/test/aaa.txt:OK

 

4)文件缺失或不存在情況

[root@HLZ test]# rm -rf aaa_pkg.tgz

[root@HLZ test]# md5sum -c ./checksum/aaa_all.md5

md5sum: aaa_pkg.tgz: No such file or directory

aaa_pkg.tgz: FAILED open or read

aaa.txt:OK

md5sum: WARNING: 1 of 2 listed files could not be read
5、總結

特殊說明

1)md5sum是校驗文件內容,與文件名是否相同無關;

2)md5sum是逐位校驗,所以文件越大,校驗時間越長。

 

md5校驗,可能極小概率出現不同的文件生成相同的校驗和,比md5更安全的校驗算法還有SHA*系列,如sha1sum/sha224sum/sha256sum/sha384sum/sha512sum等等,基本用法與md5sum命令類似,詳情可通過man sha1sum查詢。

以下僅簡單列舉一例,不再贅述。

[root@HLZ test]# sha512sum aaa.txt > aaa.sha512

[root@HLZ test]# cat aaa.sha512

8edb9790359ef641112fa85eea5c8f09b7330564a58cddf39aef66006f32454a8879b1e63d9f667ecf86264d4d5b6a602a4c94c79d962ec755345a3837217f89 aaa.txt

[root@HLZ test]#

[root@HLZ test]# sha512sum -c ./aaa.sha512

aaa.txt:OK


--------------------- 
作者:hanlizhong85 
來源:CSDN 
原文:https://blog.csdn.net/hanlizhong85/article/details/77844635 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章