註冊過的網站,知道我的密碼嗎 ?
資料庫中會儲存帳密,但若某天資料庫被攻破,駭客就可以拿著我的帳密到處亂試。所以這些網站其實不應該知道我的明密,他們應該知道的是加密過的密碼。
hash function 雜湊函數
將無限的輸入對應到有限的輸出,因此可能有不同的輸入但卻產生相同的輸出,我們稱之為碰撞。因此,無法逆推。
特性:
- 單向函數
- 無法從輸出推導輸入
- 輸入一樣,輸出保證一樣
有名的雜湊函數例如 : md5, sha256(安全性更高、但速度也更慢)
這也是為甚麼忘記密碼只能重設,因為他也不知道原本的密碼是甚麼。
但,我們可以用暴力破解,將所有對應到結果存在資料庫中,這時只要透過查表就知道原本對應的密碼是甚麼。為了克服暴力破解的資安問題,有了加鹽。
salting 加鹽
自動幫使用者產生一段亂數,例如:sdsfdlsjf,做 md5 時是對 (sdsfdlsjf + 密碼),確保不會太輕易被破解。
除非亂數加密碼的組合也被駭客存到表格內。