4
bcryptに組み込みのソルトを含めるにはどうすればよいですか
Coda Haleの記事「パスワードを安全に保存する方法」では、次のように述べています。 bcryptには、レインボーテーブル攻撃を防ぐためのソルトが組み込まれています。 彼はこの論文を引用し、OpenBSDの実装ではbcrypt次のように述べています。 OpenBSDは、カーネルがデバイスタイミングから収集するランダムデータをシードしたarcfour(arc4random(3))キーストリームから128ビットのbcryptソルトを生成します。 これがどのように機能するかわかりません。私の塩の概念では: 保存されているパスワードごとに異なる必要があるため、それぞれに個別のレインボーテーブルを生成する必要があります。 繰り返し使用できるように、どこかに保存する必要があります。ユーザーがログインしようとすると、パスワードの試行が行われ、最初にパスワードを保存したときと同じソルトアンドハッシュ手順を繰り返し、比較します。 Devcrypt(Railsログインマネージャー)をbcryptで使用している場合、データベースにsalt列がないため、混乱しています。ソルトがランダムでどこにも保存されていない場合、ハッシュプロセスを確実に繰り返すにはどうすればよいですか? 要するに、どのようにbcryptは組み込みのソルトを持つことができますか?