2011-11-13 4 views
2

ここに、mysql資格テーブルの簡単なテーブル定義があります。mySQLのシンプルな資格テーブル

case "credentials": 
    self::create('credentials', 'identifier INT NOT NULL AUTO_INCREMENT, flname VARCHAR(60), email VARCHAR(32), pass VARCHAR(40), PRIMARY KEY(identifier)'); 
    break; 

すべてが、内部の引数を無視してください...構文は良いですが...私は、フォームを確認したいです。基本的には、PRIMARY KEYと3つのフィールド(ユーザーの名前、電子メール、パスワード)の自動インクリメントintがあります。

これはできるだけ簡単にしたいと思います。検索はIDに基づいて行われます

質問:これは基本認証情報テーブルでは機能しますか?

答えて

0

電子メールフィールドのサイズを増やすことをお勧めします(電子メールの最大長は最大256文字まで可能です)。また、平文の文字列ではなく、ハッシュ(例:bcrypt)としてパスワードを保存する必要があります。

1

平文でパスワードを保管しないでください。

bcryptやPBKDF2など、よく知られている反復ハッシュ関数を使用します。未処理のMD5ハッシュ、または生のSHAまたはSHA-2ハッシュを保存しないでください。あなたはいつも塩をつけて安全になるようにあなたのハッシュを繰り返すべきです。

塩を保存するために1つの余分な列が必要です。また、柔軟にしたい場合は、ユーザーごとの繰り返し回数と多分ユーザーごとのハッシュ関数を持つこともできます。これにより、すべてのユーザーが直ちにパスワードを変更する必要なく、将来別のハッシュ関数に変更する柔軟性が得られます。

それ以外は、表は正常です。

関連する問題