計算和校驗文件報文摘要的工具程序
md5sum命令 采用MD5報文摘要算法(128位)計算和檢查文件的校驗和。一般來說,安裝了Linux后,就會有md5sum這個工具,直接在命令行終端直接運行。
MD5算法常常被用來驗證網絡文件傳輸的完整性,防止文件被人篡改。MD5 全稱是報文摘要算法(Message-Digest Algorithm 5),此算法對任意長度的信息逐位進行計算,產生一個二進制長度為128位(十六進制長度就是32位)的“指紋”(或稱“報文摘要”),不同的文件產生相同的報文摘要的可能性是非常非常之小的。
md5sum(選項)(參數)
-b:二進制模式讀取文件;
-t或--text:把輸入的文件作為文本文件看待;
-c:從指定文件中讀取MD5校驗和,并進行校驗;
--status:驗證成功時不輸出任何信息;
-w:當校驗不正確時給出警告信息。
文件:指定保存著文件名和校驗和的文本文件。
使用 md5sum 生成密碼
另一種獲取可用作密碼的隨機字符串的方法是計算 MD5 校驗值!校驗值看起來確實像是隨機字符串組合在一起,我們可以用作密碼。確保你的計算源是個變量,這樣的話每次運行命令時生成的校驗值都不一樣。比如 date !date 命令 總會生成不同的輸出。
[root@localhost ~]# date | md5sum
6a43f2c246cdc3e6a3592652f831d186 -
生成一個文件insert.sql的md5值:
[root@localhost ~]# md5sum insert.sql
bcda6cb5c704664f989703ac5a88f112 insert.sql
檢查文件testfile是否被修改過:
首先生成md5文件:
md5sum testfile > testfile.md5
檢查:
md5sum testfile -c testfile.md5
如果文件沒有變化,輸出應該如下:
forsort: OK
此時,md5sum命令返回0。
如果文件發生了變化,輸出應該如下:
forsort: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
此時,md5sum命令返回非0。
這里,檢查用的文件名隨意。如果不想有任何輸出,則md5sum testfile --status -c testfile.md5
,這時候通過返回值來檢測結果。
檢測的時候如果檢測文件非法則輸出信息的選項:
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只有一行信息,但是我認為地給它多加了一個字符,導致非法。如果md5文件正常那么-w
有沒有都一樣。