ツール

bcrypt ハッシュ生成・照合ツール

指定したコストで bcrypt ハッシュを生成したり、既存の $2a$/$2b$/$2y$ ハッシュとパスワードが一致するか照合したりできます。

ブラウザ内で実行ハッシュと暗号化3797
無料

入力

0 B

結果

結果はここに表示されます。

Laravel、Rails の has_secure_password、Spring Security、Django のオプションのハッシャーなど、多くのフレームワークがいまも標準で bcrypt を使ってパスワードを保存しています。そのため、シードユーザー用のハッシュを手作業で作る場面や、あるアカウントのログインがなぜ失敗し続けるのか調べる場面が遅かれ早かれやってきます。このツールはその両方に対応します。選んだコストでパスワードをハッシュ化することも、保存済みのハッシュを貼り付けてパスワードが一致するか確かめることもできます。中身は bcrypt.js(dcodeIO/bcrypt.js、3.8k スター、BSD-3-Clause)で、依存関係のない純粋な JavaScript 実装です。生成されるハッシュは、PHP の password_hash、Python の bcrypt、Go の x/crypto/bcrypt が使う C ライブラリのものとそのまま互換です。

動作のしくみ

  • 実行のたびに crypto.getRandomValues から新しい 128 ビットのソルトを取るため、同じパスワードを 2 回ハッシュ化すると異なる 60 文字のハッシュが 2 つでき、どちらも照合に通ります。
  • コストは鍵拡張ラウンド数の 2 を底とする対数です。コスト 10 は 1,024 ラウンドで、1 上げるごとに時間は倍になります。結果に表示される所要時間はお使いの端末での実測値です。
  • 照合では、保存されたハッシュに埋め込まれたソルトとコストでパスワードを再計算し、定数時間で比較します。これはサーバーのログイン処理とまったく同じ手順です。
  • bcrypt に届くのはパスワードの先頭 72 バイトだけです。それより長いパスワードは結果で警告され、貼り付け時に入る末尾の改行は取り除かれますが、空白は保持されます。

データの行き先

どこにも行きません。このツールは完全にブラウザ内で動作します。貼り付けたテキストはページが処理し、サーバーに送信されることも、ログに記録されることもありません。

このツールは鍵や資格情報を扱うため、実行に関する情報は一切保存されません。あなた自身の履歴にも残りません。

必要なポイント

このツールは無料です。ログインもポイントも必要ありません。

よくある質問

コストはいくつにすべきですか?
OWASP の Password Storage Cheat Sheet は 10 以上を求めています。実務上は、ログインサーバーが許容できる最大値を選ぶのが目安で、そのサーバー上で 1 回あたりおよそ 100〜250 ミリ秒になる値を、ここではなく実機で測って決めます。コスト 12 はコスト 10 の 4 倍、15 は 32 倍の時間がかかります。13 以上で警告が出るのは、ログインのたびに、そして攻撃者の推測のたびにその時間がかかるからです。
$2a$、$2b$、$2y$ の違いは何ですか?
アルゴリズムは同じで、バグ修正の経緯を示すラベルが違うだけです。$2y$ は PHP の crypt_blowfish が 2011 年に非 ASCII バイトの符号拡張バグを修正した後のハッシュを示すために導入し、$2b$ は OpenBSD が 2014 年に、パスワード長が 256 バイトで桁あふれするバグを修正した際に導入しました。72 バイト未満のパスワードなら、3 つともプレフィックス以外は同一のハッシュになり、多くのライブラリはどれでも照合できます。
とても長いパスワードの末尾を変えても一致してしまうのはなぜですか?
どの実装でも、bcrypt は 72 バイト目より後ろを一切見ないからです。72 バイトは ASCII なら 72 文字ですが、UTF-8 の日本語では 24 文字にしかなりません。長いパスフレーズを受け付ける必要がある場合、SHA-256 で事前ハッシュして Base64 エンコードしたものを bcrypt に渡すシステムもあります。生のバイナリダイジェストを渡してはいけません。多くの実装ではゼロバイトでパスワードが終わってしまいます。
2026 年でも bcrypt は良い選択ですか?
いまも許容範囲であり、SHA-256 や MD5 のような高速ハッシュよりはるかに優れています。ただし OWASP は現在 Argon2id を第一、scrypt を第二に挙げています。bcrypt はメモリ使用量が少ないため、GPU や専用ハードウェアによる攻撃のコストが比較的低いからです。既存の bcrypt システムでは、コストを段階的に上げ、次回ログイン時に再ハッシュするのが一般的な方法です。
パスワードやハッシュはブラウザの外に送られますか?
いいえ。ハッシュ化も照合もこのページの JavaScript 内で行われ、何も送信されません。サイトは実行の記録も残さず、ログイン中のメンバーの履歴にも保存されません。

背後にあるオープンソース

このツールは dcodeIO/bcrypt.js(BSD-3-Clause)の上で動作しています。同じ処理を自分のプログラムに組み込みたい場合は、そのライブラリを使ってください。

dcodeIO/bcrypt.js

別の呼び方

  • bcrypt 生成
  • bcrypt ハッシュ 生成
  • bcrypt 照合
  • bcrypt オンライン
  • パスワード ハッシュ化
  • bcrypt コスト