onlinetools.dev

Bcryptハッシュ・検証

bcrypt でパスワードをハッシュ化、または平文とハッシュを照合

ローカル実行
loading…
このツールについて

選んだコストファクターでパスワードを bcrypt ハッシュ化するか、平文と既存のハッシュを照合します — どちらも完全にブラウザー内で行われます。テスト対象がパスワードであるとき、これこそが望むべき性質です。ハッシュインスペクターは、任意の bcrypt ハッシュをバージョン、コスト、ソルトに分解もします。

bcrypt がいまだにパスワード保存の堅実な選択肢であるのは、意図的に遅く、パスワードごとにソルトが付くからです。コストファクターが 1 増えるごとに作業量は倍になり、コスト 12 は基盤となる暗号の初期化を 4096 回反復することを意味します。所要時間の表示は選んだコストにかかる時間を示し、セキュリティとレイテンシのトレードオフを具体的にします。

日常的により多いのは照合のほうです。アプリのコードを立ち上げずに、データベースのハッシュが既知のパスワードと一致するかを確認する。両方を貼り付ければ、イエスかノーが得られます。

よくある質問

本番環境ではどのコストファクターを使うべきですか?
古典的な指針は、ログインのレイテンシ予算が許す限り高く、今日では一般的に 10–13 です。本番ハードウェアでハッシュ 1 回あたり 100–300ms を目標にしてください。ブラウザーの JavaScript はネイティブより遅いため、ここで表示される時間はサーバーにとっての上限です。
なぜ同じパスワードから毎回違うハッシュが得られるのですか?
ハッシュごとにランダムな 16 バイトのソルトが生成され、ハッシュ文字列そのものの中に保存されるからです。これは設計どおりです — 同一のパスワードが異なるハッシュになり、事前計算されたレインボーテーブルを打ち破ります。照合時にはハッシュからソルトを読み戻します。比較が成立するのはそのためです。
bcrypt ハッシュの各部分は何を意味しますか?
$2b$12$ + 53 文字。2b はアルゴリズムのバージョン、12 はコスト(2^12 回の反復)、次の 22 文字がソルト、最後の 31 文字がダイジェストです — すべて bcrypt 独自の base64 アルファベットで書かれます。ツールの下のインスペクターが、任意のハッシュをこのように分解します。
Argon2 ではなく bcrypt はまだ推奨されますか?
新しいシステムでの現在の第一候補は Argon2id です(メモリハード性が GPU クラックに抵抗します)。bcrypt は引き続き許容範囲で、どこにでもあります — 実用的な助言はこうです。正常に動いている bcrypt ストレージを慌てて移行しないこと。ただし新規設計では Argon2id を選ぶこと。どちらも SHA-256 のような高速ハッシュとは比べものにならないほど優れています。
関連ツール