本文寫作目標是:告訴開發人員這兩個東西是什麼以及說明時候會用到,而不是涉及具體的編碼實現。因爲實際開發中大部分都是使用現成的庫。
如文中有誤請您在評論區指出,我會及時糾正,感謝~
MD5是什麼1
MD5信息摘要算法(英語:MD5 Message-Digest Algorithm)
Digest - 摘要
- 廣泛使用的密碼散列函數
- 產生出一個128位(16字節)的散列值(hash value)
- 美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,取代了MD4
- 1996年後該算法被證實存在弱點,可以被加以破解
- 無法防止碰撞(collision),因此不適用於安全性認證,如SSL公開密鑰認證或是數字簽名等用途
MD2~MD5的歷史見附錄1。
算法原理
簡要的敘述爲:MD5碼以512位分組來處理輸入的信息,且每一分組又被劃分爲16個32位子分組,經過了一系列的處理後,算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。
每次的運算都由前一輪的128位結果值和當前的512bit值進行運算。