萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> 詳解Linux系統中md5sum命令的用法

詳解Linux系統中md5sum命令的用法

   這篇文章主要介紹了詳解Linux系統中md5sum命令的用法,用來處理MD5驗證的相關操作,需要的朋友可以參考下

  MD5算法常常被用來驗證網絡文件傳輸的完整性,防止文件被人篡改。MD5全稱是報文摘要算法(Message-Digest Algorithm 5),此算法對任意長度的信息逐位進行計算,產生一個二進制長度為128位(十六進制長度就是32位)的“指紋”(或稱“報文摘要”),不同的文件產生相 同的報文摘要的可能性是非常非常之小的。

  在linux或Unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了Linux後,就會有md5sum這個工具,直接在命令行終端直接運行。可以用下面的命令來獲取md5sum命令幫助 man md5sum

  1丶使用md5sum來產生指紋(報文摘要)命令如下:md5sum file > file.md5 或者 md5sum file >>file.md5

  注: > 和 >> 的區別在於: > 表示把由file文件產生的摘要重定向到文件file.md5,但是會覆蓋file.md5裡面的內容;而 >> 則將輸出的摘要附加到file.md5文件的後面。也可以把多個文件的報文摘要輸出到一個md5文件中,這要使用通配符*,比如某目錄下有幾個iso文 件,要把這幾個iso文件的摘要輸出到iso.md5文件中,命令如下:md5sum *.iso > iso.md5

  2丶使用md5報文摘要驗證文件,方法有二:

  1. 比如,把下載的文件file和該文件的file.md5報文摘要文件放在同一個目錄下,然後用如下命令進行驗證:md5sum -c file.md5 然後如果驗證成功,則會輸出:正確

  2. 比如下載了文件file,然後運行下面的命令:md5sum file 命令會輸出一個md5的報文摘要,然後把這個報文摘要直接與file.md5中的內容比較,如果一樣,就說明驗證正確。

  linux md5sum的用法

  適用於 Oracle 用戶的技巧

  md5sum 是一個非常強大的用於安全性實施的命令。您所管理的某些配置文件(如 listener.ora、tnsnames.ora 和 init.ora)對於成功的 Oracle 基礎架構非常重要,任何修改都可能會導致停機。這些通常是更改控制過程的一部分。不要相信別人所說的這些文件並未更改,使用 MD5 校驗和執行該命令。創建一個校驗和文件,並在每次執行計劃的更改時重新創建該文件。作為合規性的一部分,使用 md5sum 命令檢查該文件。如果某個人無意中更新了這些重要文件中的一個,您就會立即捕獲更改。

  同樣,您還可以為 $ORACLE_HOME/bin 中的所有可執行文件創建 MD5 校驗和,並不斷比較它們以捕獲未授權的修改。

  一 生成一個文件的md5值

  復制代碼

  代碼如下:

  [oracle@node1 bin]$ md5sum lsnrctl

  87df51eb21ee0643e47988a0d8136f18 lsnrctl

  二 檢查文件是否改變

  代碼如下:

  [oracle@node1 ~]$ touch file1 file2

  [oracle@node1 ~]$ ls

  file1 file2 patch.log

  [oracle@node1 ~]$

  [oracle@node1 ~]$ md5sum file1 file2>f1f2

  [oracle@node1 ~]$ md5sum --check f1f2

  file1: OK

  file2: OK

  [oracle@node1 ~]$ echo "change" >>file1

  [oracle@node1 ~]$ md5sum --check f1f2

  file1: FAILED

  file2: OK

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

  實例如下:

  Shell

  代碼如下:

  # touch f1.txt f2.txt

  # ls

  f1.txt f2.txt

  # md5sum *.txt > md5sumtest.md5

  # cat md5sumtest.md5

  d41d8cd98f00b204e9800998ecf8427e f1.txt

  d41d8cd98f00b204e9800998ecf8427e f2.txt

  # echo "hahaha" > f1.txt

  # md5sum -c md5sumtest.md5

  f1.txt: FAILED

  f2.txt: OK

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

  # echo "hahaha" > f2.txt

  # md5sum -c md5sumtest.md5

  f1.txt: FAILED

  f2.txt: FAILED

  md5sum: WARNING: 2 of 2 computed checksums did NOT match

  # cat /dev/null > f1.txt

  # md5sum -c md5sumtest.md5

  f1.txt: OK

  f2.txt: FAILED

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

  # cat /dev/null > f2.txt

  # md5sum -c md5sumtest.md5

  f1.txt: OK

  f2.txt: OK

  代碼如下:

  # touch f1.txt f2.txt

  # ls

  f1.txt f2.txt

  # md5sum *.txt > md5sumtest.md5

  # cat md5sumtest.md5

  d41d8cd98f00b204e9800998ecf8427e f1.txt

  d41d8cd98f00b204e9800998ecf8427e f2.txt

  # echo "hahaha" > f1.txt

  # md5sum -c md5sumtest.md5

  f1.txt: FAILED

  f2.txt: OK

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

  # echo "hahaha" > f2.txt

  # md5sum -c md5sumtest.md5

  f1.txt: FAILED

  f2.txt: FAILED

  md5sum: WARNING: 2 of 2 computed checksums did NOT match

  # cat /dev/null > f1.txt

  # md5sum -c md5sumtest.md5

  f1.txt: OK

  f2.txt: FAILED

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

  # cat /dev/null > f2.txt

  # md5sum -c md5sumtest.md5

  f1.txt: OK

  f2.txt: OK

copyright © 萬盛學電腦網 all rights reserved