Bcrypt ハッシュ生成・検証ツール

平文から選んだコストファクターで bcrypt パスワードハッシュを生成したり、既存の bcrypt ハッシュとパスワードを照合したりを、すべてブラウザー内で行います。

ツールを読み込み中…

Bcrypt ハッシュ生成・検証ツール「ハッシュ」と「検証」を切り替えて、平文パスワードをソルト付き bcrypt ハッシュに変換したり、パスワードが既存のハッシュと一致するかを確認したりできます。コストファクターを選んでハッシュの計算の重さと総当たり耐性を調整でき、ハッシュごとに新しいランダムなソルトがツールによって生成されます。すべて WebAssembly 版 bcrypt によりローカルで実行されるため、パスワードとハッシュがブラウザーの外に出ることはありません。

Bcrypt ハッシュ生成・検証ツールとは?

Bcrypt ハッシュ生成・検証ツールは、bcrypt パスワードハッシュ関数のための無料のブラウザー内ツールです。bcrypt は数えきれないほどの Web フレームワークがパスワードを安全に保存するために使う、まさにそのアルゴリズムです。バックエンド開発者やセキュリティエンジニア、認証を学んでいる人が、データベースを初期化するためのサンプル $2b$ ハッシュを作ったり、保存済みのハッシュが既知のパスワードと本当に一致するか確認したり、コストファクターによって計算量がどう変わるかを見たりするのに使います。「ハッシュ」モードではパスワードとコストファクター(4〜31)を入力すると、16 バイトのランダムなソルトが生成され、結果はアルゴリズムのバージョン・コスト・ソルト・ダイジェストをまとめて含む標準的なエンコード済み bcrypt 文字列になります。「検証」モードではパスワードと既存の bcrypt ハッシュを貼り付けて「検証」を押すと、一致するかどうかが分かります。bcrypt は意図的に遅いため、高いコストファクターでは計算に体感できるほどの時間がかかることがあります。

Bcrypt ハッシュ生成・検証ツールの使い方

  1. 新しいハッシュを作るなら「ハッシュ」、既存のものと照合するなら「検証」を選びます。
  2. 「ハッシュ」モードで、保護したい平文パスワードを入力または貼り付けます。
  3. コストファクターを設定します(10 が一般的な既定値で、高いほど遅く強くなります)。
  4. 「ハッシュ生成」を押し、結果が表示されたら bcrypt 文字列をコピーします。
  5. 「検証」モードでパスワードを入力し bcrypt ハッシュを貼り付け、「検証」を押して「一致」か「不一致」を確認します。

使用例

既定コストでパスワードをハッシュ化

入力

パスワード: correct horse battery staple、コスト: 10

出力

$2b$10$...(60 文字の bcrypt ハッシュ。ソルトはランダムなので毎回異なります)

保存済みハッシュとパスワードを照合

入力

パスワード: hunter2、ハッシュ: $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy

出力

一致

誤ったパスワードは検証に失敗する

入力

パスワード: wrongpass、ハッシュ: $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy

出力

不一致

よくある質問

パスワードやハッシュはどこかに送信されますか?
いいえ。ハッシュ化と検証は WebAssembly 版の bcrypt を使ってすべてブラウザー内で実行されます。入力した内容はサーバーに送信・保存されないため、ツールはオフラインで動作し、パスワードがページの外に出ることはありません。
コストファクターはいくつにすべきですか?
コストファクターは bcrypt が行うラウンド数を決め、1 上げるごとに作業量がおよそ倍になります。Web アプリでは 10〜12 が一般的です。値を高くするほど総当たりに強くなりますが計算に時間がかかるため、極端に大きい値は一瞬ブラウザーを固まらせることがあります。
同じパスワードでも毎回ハッシュが変わるのはなぜですか?
ハッシュごとに新しい 16 バイトのランダムなソルトが生成され、結果に埋め込まれます。ソルトが異なれば同じパスワードでも異なるハッシュになり、それこそが bcrypt を安全にしています。検証はソルトを保存済みのハッシュから読み戻すので、それでも成功します。
検証でハッシュが無効と表示されるのはなぜですか?
検証は標準的なエンコード形式の完全な bcrypt ハッシュを必要とします。通常は $2a$・$2b$・$2y$ で始まり、続いてコストと 53 文字のソルト+ダイジェストが並びます。文字列の一部が欠けたり変わったりしているとソルトを読めず、エラーになります。
このハッシュをそのままアプリで使えますか?
はい。出力は一般的な bcrypt ライブラリと互換性のある標準エンコード bcrypt 文字列なので、保存してサーバー側で照合できます。実運用ではパスワードが入力される場所でハッシュを生成し、他のツール経由でコピーしないでください。

関連ツール