Adding a secure password
我們已經把 name 和 email 欄位的驗證做完了,最後要幫 User model 加個基本的屬性:安全密碼(a secure password)。每個使用者都需要設定密碼以及二次密碼驗證,然後把密碼轉成 hash 的版本存進資料庫。這裡說的 hash 是指經過不可逆的 hash function 計算得到的結果。
然後還要增加一個方法,對使用者提供的密碼進行驗證。
驗證使用者的方法會先取得使用者提交的密碼,將密碼加密成一組 hash,再和資料庫中的 hashed value 做比對,如果兩者符合,表示使用者提交了正確的密碼,而使用者也經過了驗證。藉由用比對 hashed value 代替比對原始密碼(raw passwords),可以讓我們不必透過儲存密碼本身去驗證使用者。
意思就是說,就算資料庫被外洩,使用者的密碼仍然是安全的。