2

私は BCrypt を Web アプリケーションに実装しようとしていますが、作業のレベル/反復/ラウンドを組み込む/変更する方法に迷っています。

php.net crypt 関数の状態

PHP 5.3.0 以降、PHP には独自の実装が含まれています。

$pw = crypt($password);を使用するとランダムなソルトが自動的に作成され、データベースに保存できることを理解して$pwいます。

を使用してパスワードの有効性を確認できることを理解しています

if ( crypt($user_input, $pw) == $pw) ) {
    // password is valid
} else {
    // password is not valid
}

Bcrypt が非常に優れている理由は、bcrypt が Blowfish crypt に基づく適応機能であることを認識しています。時間が経つにつれて、ラウンド数を増やして遅くすることができるため、より高速なコンピューティング テクノロジにもかかわらず、ブルート フォース攻撃に対する耐性が維持されます。

私の質問は、パスワードの有効性のチェックを遅くしたり速くしたりするにはどうすればよいですか? または別の方法で、ハッシュ化されたパスワードを作成するために必要なデフォルトの繰り返し回数を設定するにはどうすればよいですか?

4

2 に答える 2

2

ここに1つの解決策があります:

https://github.com/ircmaxell/password_compat

使用法:

$options = array('cost' => 8); // 2^cost is the number of iterations 
$hash = password_hash("adsfasdf", PASSWORD_BCRYPT, $options);

詳細については、こちらを参照してください。

于 2013-07-01T14:21:59.263 に答える