其實雜湊(Hash)的部份,本來是打算放在 [2018 iThome 鐵人賽] Day 4: 如何區分加密、壓縮、編碼 這篇一起講。但在撰寫的過程中發覺雜湊跟其他三者相比起來的差異性較大,一起講其實蠻突兀的,不太好比較。而且我自己目前看到的狀況是,雜湊比較容易跟加密搞混,所以才獨立出這篇來講一下雜湊與加密的關係。
你可能或多或少都有看過或聽過「MD5 加密」、「MD5 解密」、「SHA-1 加密」、「SHA-1 解密」、「雜湊加密演算法」。但 MD5 和 SHA-1 實際上並不是加密演算法,而是雜湊演算法。究竟加密跟雜湊到底有什麼不一樣,又該如何區分,這篇會簡單講解一下。
因為加密的部份已經在 [2018 iThome 鐵人賽] Day 4: 如何區分加密、壓縮、編碼 這篇提過了,所以就不重述,還不清楚的人歡迎點擊上述文章連結前去察看。以下會先講雜湊的特性,再講雜湊跟加密的區別。
其實雜湊在一些壓縮演算法或者排序演算法也都有用到,
但這邊只就資訊安全相關的部份進行討論。
我個人認為,雜湊和加密很容易被人搞混的原因,主要是因為,雜湊和加密通常是一起使用的,常常被拿在一起講,所以久而久之就搞混了。
但其實可以透過以下幾點來區分:
所以別再說出「MD5 加密」、「MD5 解密」、「SHA-1 加密」、「SHA-1 解密」之類的話啦!
如果這兩篇有看懂的話,應該就可以理解這個 tweet 在講什麼:
pkcs7 簽章使用 RSA 加密演算法對資料的 SHA256 雜湊值簽章,台灣的金融機構習慣對這簽章做 base64 編碼來避免古早用 Cobol 的系統以 ASCII 字碼接收而產生所有資料第 8 bit 都是 0 而引起的驗證錯誤。
如果覺得我的文章不錯的話,
歡迎按讚、追蹤、訂閱、留言、分享,
也可以利用像是 Feedly 等 RSS Reader,
直接訂閱我的部落格:https://blog.m157q.tw。
因為 iThome 這邊未來我不保證持續更新,
雖然目前用起來沒太大問題,
但就是覺得要管兩個地方有點麻煩。