簡單地說, MD5 是一種單向字串雜湊演算 (hashing) ,其可將你所給予的任何長度字串, 使用 MD5 雜湊演算法,得出一個長度為 128 位元 ( 16 個字元) 的計算結果, 以下以鍵值稱之。
舉例來說,你將 "ROCK" 這個字串,使用 MD5 演算的話,就會得到一個 128 位元的計算結果,以字串型式表示的話,則如同下行:
MD5 ("ROCK") = afeb717aa2a101f7f64840e0be38c171
用字串表示時,是把 128 位元的計算結果 (術語稱之為 "digest code") ,轉成十六進位碼形式的字串,此字串需要 32 個字元空間 (即 256 位元)。
MD5 的其他說明條列如下:
固定的字串內容必定會得出一個固定的鍵值,而非每次都算出不同的。
這是一個單向的雜湊演算,意味著,它雖可每次都將同樣的字串內容,算 出同樣的鍵值,但它無法從鍵值反推算出原本的字串內容。
不同字串內容所演算出來的鍵值,有可能相同,但根據統計,重覆的機率小於百萬分之一,以重覆率來說,是相當好的演算法。
演算速度快,對硬體的要求很低。
它可以演算任意長度的字串內容,而且能得出固定長度的鍵值。
就算字串內容只相差一個字,它也能算出完全不同的鍵值。
鍵值長達 128 位元,而且可接受任何長度的字串,就密碼的安全性來講,比過去常用的 DES 編碼法還好。 DES 編碼法,只能接受 8 個字元長度的字串,產生的鍵值只有 56 位元。
就最後兩項,舉個例子來驗證,如下:
MD5 ("ROCK") = afeb717aa2a101f7f64840e0be38c171
MD5 ("RACK") = 1ece4bad0efe8b897c6e7f8bd101759f
MD5 ("ROCKY") = 6cd910740cbbbbd0f55238a93fba157d
MD5 ("Rock'S saying") = 7dca0df0dfa7f76b652e53daa4852640
最後要提的是, MD5 演算法,是由 RSA Data Security, Inc 公司所提出的。
以上擷取自
石頭閒語,真有興趣可以去參觀了解.