大多數開發人員都知道密碼不能以明文形式儲存,但許多開發人員仍然認為使用 md5
或 sha1
對密碼進行雜湊處理是安全的。曾經有一段時間,使用上述雜湊演算法就足夠了,但現代硬體使得使用暴力破解攻擊快速破解這些雜湊,甚至是更強的雜湊成為可能。
為了提高使用者密碼的安全性,即使在最壞的情況下(您的應用程式遭到入侵),您也需要使用能夠抵抗暴力破解攻擊的雜湊演算法。目前最好的選擇是 bcrypt
。在 PHP 中,您可以使用 crypt 函數創建 bcrypt
雜湊。Yii 提供了兩個輔助函數,使使用 crypt
安全地生成和驗證雜湊變得更容易。
當使用者第一次提供密碼時(例如,在註冊時),需要對密碼進行雜湊處理
$hash = Yii::$app->getSecurity()->generatePasswordHash($password);
然後,雜湊可以與相應的模型屬性關聯,以便可以將其儲存在資料庫中以供以後使用。
當使用者嘗試登入時,必須根據先前雜湊並儲存的密碼驗證提交的密碼
if (Yii::$app->getSecurity()->validatePassword($password, $hash)) {
// all good, logging user in
} else {
// wrong password
}
發現錯字或您認為此頁面需要改進?
在 github 上編輯它 !
註冊 或 登入 以發表評論。