0 關注者

密碼處理

大多數開發人員都知道密碼不能以明文形式儲存,但許多開發人員仍然認為使用 md5sha1 對密碼進行雜湊處理是安全的。曾經有一段時間,使用上述雜湊演算法就足夠了,但現代硬體使得使用暴力破解攻擊快速破解這些雜湊,甚至是更強的雜湊成為可能。

為了提高使用者密碼的安全性,即使在最壞的情況下(您的應用程式遭到入侵),您也需要使用能夠抵抗暴力破解攻擊的雜湊演算法。目前最好的選擇是 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 上編輯它 !