原理簡介:
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:
Java實現MD5加密解密類 http://www.linuxidc.com/Linux/2014-06/102732.htm
Java項目中用到的MD5加密 http://www.linuxidc.com/Linux/2014-03/98747.htm
Linux下MD5sum 校驗文件完整性 http://www.linuxidc.com/Linux/2014-03/98416.htm
使用OpenSSL的MD5計算功能 http://www.linuxidc.com/Linux/2013-10/91119.htm
Linux下計算文件的MD5值 http://www.linuxidc.com/Linux/2012-11/74902.htm