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