0

私は一種の初心者ですが、Zend Framework 2 の操作方法を学ぼうとしています。パブリック リポジトリから複製したモジュールを使用して、ユーザーを認証しています。次のように MD5 を使用します。

$dbAdapter      = $sm->get('Zend\Db\Adapter\Adapter');
$dbAuthAdapter  = new DbAuthAdapter($dbAdapter, 'user','username','password', 'MD5(?)');

ただし、まず MD5 以外のもの (SHA-2 など) を使用したいと思います。これは、MD5 がもう安全ではないことを何度か読んだことがあり、ソルト値も使用したいからです。 . 各ユーザーのランダムなソルト値を生成し、それをテーブル行の別の列に保存し、パスワードをハッシュされたソルト + パスワードとして保存したいと考えています。その部分は問題にならないはずです。

これに関する問題は、モジュールに設定したアダプターを使用して検証する方法です。データベースからソルト値を取得し、それをユーザーがログイン フォームで指定したパスワードの先頭に追加し、それを暗号化し、保存されているパスワードと比較したいと考えています。データベースからユーザーのソルト値を取得するにはどうすればよいですか? MD5 の代わりに別の暗号化を使用するにはどうすればよいですか?

4

1 に答える 1

2

いくつかのことを行うことをお勧めします。

  • ユーザー テーブルに、salt などと呼ばれる別の列を追加します。ユーザーが登録すると、ソルトが作成され、この列に保存されます。
  • サイトの静的ソルトを構成ファイルに保存します。
  • ユーザーが登録するときは、ハッシュ関数 (必要に応じて sha2) を使用し、パスワード、静的ソルト、およびカスタム ソルトをハッシュされた 1 つの文字列に連結します。
  • ハッシュを保存し、ログイン時にパスワードを確認するために同じ方法を使用していることを確認してください。

詳細はこちら: http://framework.zend.com/manual/2.0/en/modules/zend.crypt.key.derivation.html

ドキュメントもこの実装を示唆しています:http://framework.zend.com/manual/2.1/en/modules/zend.authentication.adapter.dbtable.html

于 2013-04-15T14:05:54.977 に答える