WMW

Bcryptハッシュ生成・検証

Free

WebAssemblyを使ってブラウザ内で完全にbcryptパスワードハッシュを生成・検証し、コストファクターとソルトを調整できます。

WebAssemblyを使用してブラウザ内で完全に実行されます。サーバーには何も送信されません。

プリセット

+1ごとに計算時間が約2倍になります。10〜12は現代のハードウェアで一般的な範囲です。

最近のアクティビティ

全員に公開されています。すべての訪問者による直近20回の使用履歴を新しい順に表示します。

まだアクティビティはありません。最初の一人になりましょう。

コメント (0)

このツールは役に立ちましたか?コメントを残したり、コツを共有したり、改善方法を教えてください。

ゲストのコメントは公開前に確認されます。 ログイン すると即座に投稿できます。

まだコメントはありません。最初にご意見をお寄せください!

このツールの機能

このツールは、調整可能なコストファクターとソルトを使用して、WebAssemblyによりブラウザ内で完全にbcryptパスワードハッシュを生成し、既存のエンコードされたハッシュに対してパスワードを確認する組み込みの検証機能も備えています。

仕組み

Bcryptはパスワードを16バイトのランダムなソルトと組み合わせ、内部の鍵設定アルゴリズムを2^コスト回繰り返します(コストファクター)。これにより計算が意図的に遅くなり、総当たり攻撃のコストが高くなります。結果はbcrypt独自のbase64風アルファベットを使用して、$2b$<コスト>$<ソルト+ハッシュ>という形式の自己完結型のエンコード文字列にパッケージ化されます。ソルトはその文字列に直接埋め込まれているため、後でパスワードを検証する際には、ソルトとコストを読み取り、候補のパスワードに対して同じ計算を再実行し、出力を比較するだけで済みます。

解決できる問題

よくある質問

どのコストファクターを使うべきですか?

10〜12は現代のハードウェアにおける一般的な範囲で、セキュリティと各ハッシュの計算にかかる時間のバランスを取ります。1増えるごとに計算時間が約2倍になるため、コスト12はコスト10の約4倍の時間がかかります。8のような低い値はテスト目的のみに使用し、実際のパスワード保存には決して使用しないでください。

なぜ私のパスワードは長すぎると拒否されるのですか?

Bcryptにはパスワードあたり72バイトという厳格な制限があり、それを超えるものは元のアルゴリズムによって静かに無視されますが、このツールはそれを黙って行うことを拒否します。これは文字数制限ではなくバイト数制限であることに注意してください。アクセント付き文字や絵文字はUTF-8でそれぞれ2〜4バイトを消費するため、見た目が72文字に達するかなり前に制限に達することがあります。

私のパスワードはどこかに送信されますか?

いいえ。ハッシュはWebAssemblyを使用してブラウザ内で完全に計算され、ここで入力した内容はどのサーバーにも送信されません。

なぜエンコードされたハッシュは$2b$で始まるのですか?

$2b$はbcryptアルゴリズムのバージョンを識別し、その後に2桁のコストファクター、そしてソルトと結果のハッシュの両方を含む単一のbase64風文字列が続きます。この自己完結型のフォーマットのため、bcryptの検証にはソルトを別途保存する必要がなく、すでにハッシュ文字列に埋め込まれています。

自分でソルトを生成すべきですか、それともランダムなものを使うべきですか?

実際のパスワード保存にはランダムなソルトを使用してください。それが自動生成される16バイトのソルトの目的であり、ページを読み込むたびに一意になります。独自の固定ソルトを指定するのは、テストや特定の既知のハッシュを再現する場合にのみ有用です。

関連ツール