2
在yii2中,用戶表的表結構不包括salt
列。鹽不存儲在數據庫中yii2
$this->createTable('tbl_user', [
'id' => Schema::TYPE_PK,
'username' => Schema::TYPE_STRING . ' NOT NULL',
'auth_key' => Schema::TYPE_STRING . '(32) NOT NULL',
'password_hash' => Schema::TYPE_STRING . ' NOT NULL',
'password_reset_token' => Schema::TYPE_STRING . '(32)',
'email' => Schema::TYPE_STRING . ' NOT NULL',
'role' => Schema::TYPE_SMALLINT . ' NOT NULL DEFAULT 10',
'status' => Schema::TYPE_SMALLINT . ' NOT NULL DEFAULT 10',
'create_time' => Schema::TYPE_INTEGER.' NOT NULL',
'update_time' => Schema::TYPE_INTEGER.' NOT NULL',
], $tableOptions);
這真的讓我感到困惑。儘管Yii使用了一個salted hash,但它並沒有默認存儲在數據庫中。我是否應該重寫代碼以使其存儲在數據庫中?如果我不在數據庫中醃製鹽,該怎麼辦?
因此,爲什麼人們在密碼散列旁邊的db中存儲salt? –
另外,當我從loginForm發回數據時,我會以明文形式獲取它。它不安全嗎? –
儲存鹽是一種老派的方法。你可以檢查PHP函數http://www.php.net/manual/en/function.crypt.php http://www.php.net/manual/en/function.password-hash.php – Alex