質問

私は彼BCrypt.net 読み Jeff Atwoodの郵便物にてパスワードの保存 ないウォーターフロントパークがPtacekの勧告を 利用BCrypt パスワードを保存.されるようになっている。 このC#の実施BCrypt

のコメントをリンク上記のい"なぜGenerateSalt(30)か、もGenerateSalt(31)も思い通り時間は全くないのでしょうか。"

を行ったBCrypt.HashPassword(パスワードBCrypt.GenerateSalt(31))によって結果が0ミリ秒からの経過ミリ秒数.

走っていBCrypt.HashPassword(パスワードBCrypt.GenerateSalt(30)などをはじめと5分となっています。

を実現しまれていないことが考えられが必要なランダムに生成された30文字塩作りのためのパスワードハッシュ( 不可逆的な暗号化をBCryptの場合)。 編集 いといけないのコードのエリアをクリックすlogRoundsないものの塩分の長さです。コAaronaught.

では、なぜGenerateSalt(31)戻り値の型関数が値を返すほとんど瞬時まで約倍にGenerateSalt(30)?

更新

この問題の修正

private byte[] CryptRaw(byte[] password, byte[] salt, int logRounds) {
    // ... snip ...
    uint rounds = 1U << logRounds;
    // ... snip
}
役に立ちましたか?

解決

疑いるバグを修正はこちら:

private byte[] CryptRaw(byte[] password, byte[] salt, int logRounds) {
    // ... snip ...
    int rounds = 1 << logRounds;
    // ... snip
}

指定した場合には31日に logRounds, で算出し2^32んでい合わせは、 int 溢れる、ハッシュが実行さ---erゼロます。の著しい使用 uint です。く!


またコメント:

を実現しまれていないことが考えられが必要なランダムに生成された30文字塩作りのためのパスワードハッシュ...

ことに注意 logRounds パラメータは、文字数/バイトでの塩については16.ことを指す対数拠点数のパスのハッシュまでを計算する;その他の言葉でにbcrypt規模はムーアの法則の機能を数桁高を計算する場合はコンピュータも取得し迅速なき裂の既存のハッシュ.

他のヒント

場合はハッシュと GenerateSalt(31) を返しますほとんど瞬時に,ことになるバグ。きる上流してくれてありがとうございますので、jBCrypt).:-)

デフォルトでは、ログイン回は10です。これが私の記憶が正しけ),1024回使用します。各時間の増分のログイン廻のラウンド数は倍増。

30ログ-巡回やっている1073741824しなければならない。こ然には長い時間がかかります。31ログ-巡回2147483648回は新入生がいる特定の実装を使うであふれます。:-(

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top