Linux中檔案MD5校驗

2021-09-07 14:28:55 字數 1490 閱讀 1908

md5sum命令用於生成檔案的md5數字摘要,並可以驗證檔案內容是否發生了改變,間接地還可以檢驗兩個檔案內容是否完全相同。因為md5sum是讀取檔案內容來計算校驗碼的,因此只能驗證檔案內容,而無法驗證檔案屬性。

[root@xuexi ~]# cp -a /etc/fstab /tmp/fstab

[root@xuexi ~]# cp -a /etc/fstab /tmp/fstab1

生成檔案的md5值。

[root@xuexi ~]# md5sum /tmp/fstab /tmp/fstab1

a612cd5d162e4620b442b0ff3474bf98 /tmp/fstab

a612cd5d162e4620b442b0ff3474bf98 /tmp/fstab1

發現這兩個檔案md5值完全一樣,也就說明這兩個檔案完全相同。

由於生成的md5資訊中,每個md5值後都緊跟著對應的檔案的路徑(可能是相對路徑),於是將生成的md5儲存到某個檔案中,以後可以使用該檔案來檢查md5值對應檔案內容是否發生了修改。

例如,將上述兩個檔案的md5資訊儲存到fs.md5sum中,然後使用"md5sum -c"可以檢查原始檔是否完整或是否被修改過。這個檢查是內容上的,許可權和屬性等的改變不會影響md5值,所以不會檢測出問題。

[root@xuexi ~]# md5sum /tmp/fstab /tmp/fstab1 >/tmp/fs.md5sum

[root@xuexi ~]# md5sum -c /tmp/fs.md5sum

/tmp/fstab: ok

/tmp/fstab1: ok

修改/tmp/fstab1的內容,然後再檢測。

[root@xuexi tmp]# echo aaa >>/tmp/fstab1

[root@xuexi tmp]# md5sum -c /tmp/fs.md5sum

/tmp/fstab: ok

/tmp/fstab1: failed

md5sum: warning:

1 of 2 computed checksums did not match

當使用了"-c"選項時,還支援以下選項:

--quiet:不顯示驗證結果為ok的記錄

--status:完全不顯示任何資訊,只能通過命令的退出狀態碼判斷驗證結果是否有failed。只要有一條failed記錄,則狀態碼為1,否則為0。

[root@xuexi tmp]# md5sum --status -c /tmp/fs.md5sum

[root@xuexi tmp]#

echo $?

1

通過比較md5sum的值,可以判斷出多個檔案的內容是否完全一致,但肉眼判斷並不方便,所以寫出指令碼批量判斷。指令碼見:shell指令碼示例:批量比較多個檔案的內容是否相同

Linux中檔案MD5校驗

md5sum命令用於生成檔案的md5數字摘要,並可以驗證檔案內容是否發生了改變,間接地還可以檢驗兩個檔案內容是否完全相同。因為md5sum是讀取檔案內容來計算校驗碼的,因此只能驗證檔案內容,而無法驗證檔案屬性。root xuexi cp a etc fstab tmp fstab root xuex...

檔案MD5校驗

1.什麼是md5 md5訊息摘要演算法 英語 md5 message digest algorithm 一種被廣泛使用的密碼雜湊函式,可以產生出乙個128位 16位元組 的雜湊值 hash value 用於確保資訊傳輸完整一致。md5由美國密碼學家羅納德 李維斯特 ronald linn rives...

Python實現檔案md5校驗

linux下校驗檔案md5值,最簡單的方法就是執行md5sum命令 md5sum filename 原本打算用subprocess呼叫系統命令來獲取md5值,python view plain copy print?import subprocess,shlex cmd md5sum filenam...