CHF 雖然可以將輸入的數值轉成完全不同且不重複的 Digest。但是,如果攻擊者猜到你用的是哪個 CHF,因為選擇也不多,MD5, SHA-1, SHA-2 猜一個就是了,再把一些「常見」的密碼全跑一遍得到 Digest,比如
'password' => Digest1
'asdfzxcv' => Digest2
'12345678' => Digest3
'8888888' => Digest4
'e04e04e04' => Digest5
.....
這張表就稱為「彩虹表」
之後就可以反查原來的密碼。
table[Digest5] => 'e04e04e04'
實際上並沒有我上述的那麼簡單...不過大致概念是那樣啦!
https://zh.wikipedia.org/zh-tw/%E5%BD%A9%E8%99%B9%E8%A1%A8