1. 程式人生 > >淺談MD5及簡單使用

淺談MD5及簡單使用

原理簡介:

MD5即Message-Digest Algorithm 5(資訊-摘要演算法 第5版),用於確保資訊傳輸完整一致。是計算機廣泛使用的雜湊演算法之一(又名:摘要演算法、雜湊演算法),主流程式語言普遍已由MD5實現。將資料運算為另一固定長度值(十六進位制的話:32位),是雜湊演算法的基礎原理,MD5的前身有MD2、MD3和MD4。

MD5的作用是讓大容量資訊在用數字簽名軟體簽署私人金鑰前被"壓縮"成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的十六進位制數字串)。除了MD5以外,其中比較有名的還有sha-1、RIPEMD以及Haval等。

對MD5演算法簡要的敘述可以為:MD5以512位分組來處理輸入的資訊,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位雜湊值。

演算法示意圖:


使用簡介

# touch test1.txt test2.txt    //-->建測試用空檔案
# ls -lart
total 8
drwxr-xr-x 5 root root 4096 Aug  5 14:46 ..
-rw-r--r-- 1 root root    0 Aug  5 14:48 test2.txt
-rw-r--r-- 1 root root    0 Aug  5 14:48 test1.txt
drwxr-xr-x 2 root root 4096 Aug  5 14:48 .
# md5sum test*.txt > test.md5  //-->將檔案系列生成的md5檔案,放到test.md5


# cat test.md5
d41d8cd98f00b204e9800998ecf8427e
 test1.txt
d41d8cd98f00b204e9800998ecf8427e  test2.txt


# echo 'hello' >> test1.txt    //-->修改其中一個檔案
# md5sum -c test.md5           //-->用md5sum命令加-c引數校驗
test1.txt: FAILED
test2.txt: OK
md5sum: WARNING: 1 of 2 computed checksums did NOT match

NOTE:

  • 儘管sha1sum演算法及原理跟md5sum不一樣,命令使用幾乎一樣。man sha1sum; man md5sum
  • 由其原理可知,生成的校驗碼相同的概率,微乎其微。