セキュリティ / パスワード
bcryptハッシュの生成・チェック
指定したコストでbcryptパスワードハッシュを生成するか、パスワードが既存のハッシュと一致するかを、すべてブラウザ上で確認できます。
bcryptハッシュの生成・チェック: Niels ProvosとDavid Mazièresが1999年に設計したbcryptは、ランダムな16バイトのソルトを使い、Blowfishのキースケジュールを2^cost回実行します。そのため、攻撃者がパスワードを1つ推測するたびに、同じ時間のかかる処理が必要になります。結果にはバージョン、コスト、ソルト、ハッシュが1つの60文字の文字列として含まれます。この実装は、Unicodeや長すぎるパスワードを含め、Python bcryptパッケージとの照合によって確認済みです。 サーバーへのファイルアップロードは一切なく、100%ブラウザ内でローカル実行します。
- カテゴリ
- 開発者ツール
- 実行回数
- ブラウザ内で
- コスト
- 無料 · 登録不要
- 提供状況
- すぐに使えます
完全にブラウザ内で実行します
すべての処理はこのブラウザ内で行われ、パスワードとハッシュが外部に送信されることはありません。ほとんどのログインにはコスト10–12が適しています。1段階上げるごとに処理時間は2倍になります。
パスワードを安全に保存する
パスワードを平文で保存したり、グラフィックカードで毎秒数十億回も試行できるMD5やSHA-256のような高速なハッシュを使ったりしないでください。bcrypt、scrypt、Argon2は意図的に処理が遅く、ソルトも付加されるため、データベースを盗まれても解析がはるかに困難です。
Webサーバーのログイン用には、htpasswdジェネレーターでユーザー行全体を作成できます。パスワード自体を作成するには、パスワードジェネレーターを使用してください。
bcryptハッシュを読み解く
$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUWでは、2bがバージョン、12がコスト、続く22文字がソルト、最後の31文字がハッシュです。ソルトとコストはハッシュとともに保存されるため、サーバーは古いパスワードを使えなくすることなく、新しいパスワードのコストを引き上げられます。
使い方
- パスワードを入力してコストを選びます。多くのサイトでは10〜12が適しています。
- ハッシュを生成し、データベースや設定にコピーします。
- 保存済みのハッシュを確認するには、チェックに切り替えてハッシュを貼り付け、パスワードを入力します。
プライバシーと制限事項
パスワードとハッシュはブラウザ内にとどまり、サーバーには送信されません。
関連ツール
よくある質問
どのコストを使えばよいですか?
ログイン1回ごとにサーバーが処理できる範囲で、できるだけ高い値を使います。通常は10〜12で、OWASPは少なくとも10を推奨しています。値を1増やすと処理時間は2倍になるため、ここに表示される時間を最も遅いサーバーで確認してください。
$2a$、$2b$、$2y$の違いは何ですか?
通常のパスワードは、どれも同じようにハッシュ化されます。$2b$はOpenBSDが2014年に行った非常に長いパスワードに関する修正を示し、$2y$は別の実装にあったバグをPHPが2011年に修正したことを示します。PHPとApacheのhtpasswdは$2y$を書き込み、その他の多くのライブラリは$2b$を書き込みます。
長いパスワードが先頭部分だけで受け入れられるのはなぜですか?
bcryptが使用するのは最初の72バイトだけで、多くのライブラリはそれを超える部分を警告なしに切り捨てます。このツールでは、そのような場合に警告を表示します。英語以外の文字は、1文字あたり2〜4バイトを使用します。
無料ツール · ブラウザ内で · アカウント不要