MD5算法常常被用來驗證網絡文件傳輸的完整性,防止文件被人篡改。MD5 全稱是報文摘要算法(Message-Digest Algorithm 5),此算法對任意長度的信息逐位進行計算,產生一個二進制長度為128位(十六進制長度就是32位)的“指紋”(或稱“報文摘要”),不同的文件產生相同的報文摘要的可能性是非常非常之小的。
md5sum命令采用MD5報文摘要算法(128位)計算和檢查文件的校驗和。一般來說,安裝了Linux后,就會有md5sum這個工具,直接在命令行終端直接運行。
語法
# md5sum(選項)(參數)
選項
-b或--binary: 把輸入文件作為二進制文件看待。 -t或--text: 把輸入的文件作為文本文件看待(默認)。 -c或--check: 用來從文件中讀取md5信息檢查文件的一致性。(不細說了參見info) --status: 這個選項和check一起使用,在check的時候,不輸出,而是根據返回值表示檢查結果。 -w或--warn: 在check的時候,檢查輸入的md5信息又沒有非法的行,如果有則輸出相應信息。
參數
文件:指定保存着文件名和校驗和的文本文件
示例
1) 查看一個字符串的md5值
在線查看字符串的md5值地址: https://md5jiami.51240.com/
linux終端里查看出來的md5值都是"32位小寫"格式的值
[root@web-master ~]# echo -n "hello world"|md5sum 5eb63bbbe01eeed093cb22bb8f5acdc3 - [root@web-master ~]# echo -n "hello world"|md5sum |cut -d" " -f1 5eb63bbbe01eeed093cb22bb8f5acdc3
命令解釋:
md5sum: 顯示或檢查 MD5(128-bit) 校驗和,若沒有文件選項,或者文件處為"-",則從標准輸入讀取。
echo -n : 不打印換行符。(注意: echo -n 后面的-n參數必須加上, 這樣算出的字符串的md5值才正確)
cut: cut用來從標准輸入或文本文件中剪切列或域。剪切文本可以將之粘貼到一個文本文件。 -d 指定與空格和tab鍵不同的域分隔符。-f1 表示第一個域。
2) 查看一個文件的md5值
[root@web-master ~]# echo "test md5" > kevin.sql 查看並獲取這個文件的md5值 [root@web-master ~]# md5sum kevin.sql 170ecb8475ca6e384dbd74c17e165c9e kevin.sql [root@web-master ~]# md5sum kevin.sql|cut -d" " -f1 170ecb8475ca6e384dbd74c17e165c9e 生產這個個文件的md5值 [root@web-master ~]# md5sum kevin.sql > kevin.sql.md5 檢查兩個文件是否一樣,可以通過比較兩個文件的md5值 (后續可以用這個方法來檢驗kevin.sql文件是否被修改)。 [root@web-master ~]# md5sum kevin.sql 170ecb8475ca6e384dbd74c17e165c9e kevin.sql [root@web-master ~]# cat kevin.sql.md5 170ecb8475ca6e384dbd74c17e165c9e kevin.sql