什麼是MD5?
MD5即Message-Digest Algorithm 5(資訊-摘要演算法 5),用於確保資訊傳輸完整一致。是電腦廣泛使用的雜湊演算法之一(又譯摘要演算法、哈希演算法),主流程式語言普遍已有MD5實作。將資料(如漢字)運算為另一固定長度值是雜湊演算法的基礎原理,MD5的前身有MD2、MD3和MD4。簡而言之,使用者可將任意長度的資料,以MD5雜湊演算法運算,得到一組固定長度為128位元的結果,採用該方法以作為確認碼運算法則之原因如下──
1.不同的資料經由MD5雜湊演算法計算所得到的結果有可能相同,但是根據統計顯示,重覆的機率低於百萬分之一。
2.MD5為一個單向雜湊演算法,亦即不易以逆向運算得到原始資料,例如:要計算字串vote123的MD5結果很簡單,但是要將MD5計算後的結果逆向運算得到vote123卻相當困難。
【EX.】
計算 X = MD5("vote1234") = 8339e38c61175dbd07846ad70dc226b2 非常簡單
知道 X 逆向運算得到 vote1234卻非常困難
MD5即Message-Digest Algorithm 5(資訊-摘要演算法 5),用於確保資訊傳輸完整一致。是電腦廣泛使用的雜湊演算法之一(又譯摘要演算法、哈希演算法),主流程式語言普遍已有MD5實作。將資料(如漢字)運算為另一固定長度值是雜湊演算法的基礎原理,MD5的前身有MD2、MD3和MD4。簡而言之,使用者可將任意長度的資料,以MD5雜湊演算法運算,得到一組固定長度為128位元的結果,採用該方法以作為確認碼運算法則之原因如下──
1.不同的資料經由MD5雜湊演算法計算所得到的結果有可能相同,但是根據統計顯示,重覆的機率低於百萬分之一。
2.MD5為一個單向雜湊演算法,亦即不易以逆向運算得到原始資料,例如:要計算字串vote123的MD5結果很簡單,但是要將MD5計算後的結果逆向運算得到vote123卻相當困難。
【EX.】
計算 X = MD5("vote1234") = 8339e38c61175dbd07846ad70dc226b2 非常簡單
知道 X 逆向運算得到 vote1234卻非常困難
MD5演算法以16個32位元子分組即512位分組來提供資料雜湊,經過程式流程,生成四個32位元資料,最後聯合起來成為一個128位散列。基本方式為,求余、取余、調整長度、與連結變數進行迴圈運算。得出結果。
參考資料:

沒有留言:
張貼留言