bcrypt とは?
bcrypt は、パスワード保存のために設計されたパスワードハッシュ化アルゴリズムです。パスワードにランダムソルトを組み合わせ、コスト係数に基づいて負荷の高い処理を繰り返すため、攻撃者が各推測を試すのにより多くの時間が必要になります。
このツールを使う場面
- テストアカウント、シードスクリプト、ローカル開発環境向けの bcrypt ハッシュを生成する。
- 異なるコスト係数によって出力形式と実行時間がどう変わるかを比較する。
- パスワードをサーバーに送信せずに、コピーしてすぐ使えるハッシュを作成する。
コスト係数の選び方
コスト値が高いほど処理は遅くなり、通常はより安全ですが、アプリケーションのすべてのログイン試行も遅くなります。インタラクティブなシステムでは 10-12 前後のコストが一般的です。管理者専用や低頻度のワークフローでは、より高い値が妥当な場合もあります。パスワードを検証する環境と同種のハードウェアでコストをテストしてください。
注意点
- 生成される各ハッシュには新しいランダムソルトが使われるため、パスワードとコストが同じでも出力は変わります。
- 元のパスワードではなく、bcrypt ハッシュを保存してください。
- bcrypt はパスワード用に使い、ファイルチェックサム、署名、汎用ハッシュ化には使わないでください。
- 検証時の挙動を一定に保ち、ユーザーアカウントが存在するかどうかを明かさないようにしてください。