— このツールについて
bcrypt は意図的に低速になるよう設計されたパスワードハッシュ関数で、これによりブルートフォース攻撃のコストが高くなります。ソルトをハッシュ内に組み込み、ハードウェアの高速化に合わせて後から引き上げられるコストファクター(ワークファクター)を公開します。このツールはパスワードのハッシュ化と、保存された bcrypt ハッシュに対する平文パスワードの検証の両方を行うため、スクリプトを書かずに認証ロジックをテストできます。
ハッシュ化と検証は bcryptjs を介してブラウザー内でローカルに実行されるため、パスワードが送信されることはありません。コストファクターは 10〜12 がほとんどのアプリケーションにとって妥当な既定値です。値が大きいほど安全性は高まりますが、処理は遅くなります。なお、bcrypt は 72 バイトを超える入力を切り詰めるため、より長いシークレットの場合は事前にハッシュ化してください。
パスワードはローカルでハッシュ化・検証され、どこにも送信されません。
よくある質問
どのコストファクターを使うべきですか?
10〜12 のコストは、一般的な Web ログインにおいてセキュリティと速度のバランスが取れています。各ステップで処理量が 2 倍になります。本番環境のハードウェアでベンチマークを取り、ハッシュ化がおおむね 250ms 未満に収まる最大の値を選んでください。
なぜ同じパスワードでも毎回異なるハッシュが生成されるのですか?
bcrypt はハッシュごとにランダムなソルトを生成し、それを出力内に格納するため、同一のパスワードでも異なるハッシュになります。検証は、確認対象のハッシュからソルトを読み戻すため、引き続き正しく機能します。
ハッシュから元のパスワードを復元できますか?
いいえ。bcrypt は設計上、一方向です。候補となるパスワードがハッシュに一致するかどうかを検証できるだけであり、それがまさにこの検証モードで行われることです。