2014-04-21 6 views
2

yii2에서 사용자 테이블의 테이블 구조에는 salt 열이 없습니다.소금이 데이터베이스에 저장되지 않습니다.

$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는 소금에 절인 해시를 사용하지만 기본적으로 데이터베이스에 저장되지 않습니다. 데이터베이스에 저장하기 위해 코드를 다시 작성해야합니까? 데이터베이스에 소금이 아프지 않으면 어떻게해야합니까?

답변

1

Yii2 Security helper에서 사용되는이 소금은 암호 해시를 만들 때만 사용되지만 해시와 암호를 비교할 필요는 없습니다. 그래서 꽤 안전합니다.

+0

그래서 암호 해시 옆에 사람들이 소금을 저장합니까? –

+0

또한 loginForm에서 데이터를 다시 게시 할 때 일반 텍스트로 표시됩니다. 그것의 안전하지 않은 rit? –

+1

소금을 저장하는 것은 오래된 학교 방법입니다. 당신은 PHP 함수를 확인할 수 있습니다 http://www.php.net/manual/en/function.crypt.php http://www.php.net/manual/en/function.password-hash.php – Alex

관련 문제