web-dev-qa-db-ja.com

bcryptラウンドはいくつ必要ですか?

アプリを作成していて、bcryptを使用してパスワードを暗号化しています。

私はbcryptについての事前の知識がなく、それでも多くのことを知りません。私はそれが安全であることを知っていますcpu-intensive暗号化。

昨日それを実装した後、サインアップがextreemeelyyyyyに遅くなり、完了するまでに約5〜10秒かかりました。私は遅いサーバー(サーバーを実行している)だけだと思っていましたが、サーバーにいくつかのブレークポイントを挿入した後、パスワードのハッシュ中に停止していることに気付きました。

ラウンドを15から1に調整したところ、すべてがスムーズに機能し始めました。

また、データベースをチェックして、パスワードが入力パスワードと同じ/類似しているかどうかを確認しました。それは同じようにランダムであるように見えます。それでも、私は人間であり、ブルートフォースボットではありません。

私の質問は、私のコンピューターが本当に非常に遅い場合を除いて、15ラウンドはそれを削減するつもりはありません、そして平均的なサーバーは10秒未満で15ラウンドをハッシュでき、1はまったく安全ではないと思われます。ハッシュするラウンドの?

私はbcryptjsを使用していますが、速度に役立たない可能性があります-JavaScriptです。

2
Tobiq

6ラウンドですか、それとも6コストですか?コスト6は2 ^ 6 = 64ラウンドだからです。

今日では、10から12のコストが最小と見なされています。ただし、ハードウェアが処理できる最大値を調べる必要があります。

ハッシュのプロセスには約1秒かかります。

3
O'Niel