第5章 雜湊函數#
加密解決「偷看」,但還有兩個問題沒解決:資料有沒有被竄改? 以及 怎麼在資料庫裡安全地存密碼? 兩者的核心工具都是雜湊函數。
本章先定義雜湊的三大性質(前像抗性、第二前像抗性、抗碰撞)與它對應的實際用途;接著回顧 MD5、SHA-1 如何相繼崩潰、SHA-2 與 SHA-3 為何仍然堅固——這段歷史是最好的密碼分析教材;最後深入Merkle–Damgård 結構:絕大多數傳統雜湊函數的內部骨架,以及它著名的副作用——長度延伸攻擊,一個至今仍在真實 Web 系統中被發現的漏洞。
學完本章你將能:正確選用 hashlib、解釋為什麼「MD5 生日碰撞」與「SHA-256 仍安全」可以同時為真,並說出為什麼把 hash(password) 存進資料庫是錯的。