md5和sha256信息摘要算法,都屬于加密哈希函數(shù),而且算法比較復雜。那么md5和sha256算法有什么區(qū)別,哪個的安全性比較高呢?
關于md5的簡介
md5是一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個128位(16字節(jié))的散列值(哈希值),用于確保信息傳輸完整一致。2004年,證實MD5算法無法防止碰撞(collision),因此不適用于安全性認證,如SSL公開密鑰認證或是數(shù)字簽名等用途。對于任意長度的消息,這個摘要相當于是個長度為16個字節(jié)的數(shù)組,通常用一個長度為32的十六進制字符串來表示。
關于sha256的簡介
sha256算法也是一種密碼散列函數(shù),對于任意長度的消息,SHA256都會產(chǎn)生一個256bit長的散列值(哈希值),用于確保信息傳輸完整一致,稱作消息摘要。這個摘要相當于是個長度為32個字節(jié)的數(shù)組,通常用一個長度為64的十六進制字符串來表示。
舉個例子:
abc123
這密碼,經(jīng)過哈希函數(shù)SHA256后得到的哈希值為:
6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090
我們找一個SHA256在線解密網(wǎng)站(md5.cn),可以用來進行SHA256哈希結果的驗證,用起來很方便,大家可以自己去測試驗證一下。
1、首先進入免費md5、SHA256在線解密網(wǎng)站(https://md5.cn/)
2、點擊“在線工具”——“Hash”
3、選擇SHa256,輸入需要加密的字符串a(chǎn)bc123,下面就出現(xiàn)加密結果:
6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090
md5和sha256算法的區(qū)別
相同點:
1、都是密碼散列函數(shù),加密不可逆。
2、都可以實現(xiàn)對任意長度對象加密,都不能防止碰撞。
安全性方面:
1、SHA256(?稱SHA2)的安全性最?,但是耗時要?其他兩種多很多。
2、md5相對來說比較容易碰撞,安全性沒這么高。
性能方面:
以?個60M的?件為測試樣本,經(jīng)過1000次的測試平均值,這兩種算法的表現(xiàn)如下:
MD5算法運?1000次的平均時間為:226ms
SHA256算法運?1000次的平均時間為:473ms
總而言之,md5和sha256都是密碼散列函數(shù),加密不可逆。雖然都不能防止碰撞,但是相對而言,md5比較容易碰撞,安全性沒有sha256高。