Bcryptジェネレーター
オンラインでbcryptパスワードハッシュを生成・検証。調整可能なコストファクター、組み込みソルト、リアルタイムハッシュプレビュー。すべての処理はブラウザ内でローカルに実行されます。
Bcryptとは?
BcryptはNiels ProvosとDavid MazièresがBlowfish暗号に基づいて設計したパスワードハッシュ関数です。安全なパスワード保存のために特別に設計されており、世界で最も広く使用されているパスワードハッシュアルゴリズムの一つです。
Bcryptはどのように動作しますか?
Bcryptはパスワードとソルトを入力として受け取り、高コストなキーセットアップ処理(Eksblowfish)を実行して固定長のハッシュを生成します。ハッシュにはアルゴリズム識別子、コストファクター、ソルト、および実際のハッシュ値が含まれます。
Bcryptのコストファクターとは?
コストファクターは4から31の数字で、キーセットアップの反復回数を決定します。増加するごとに計算時間が倍増します。コスト10は2^10=1024回の反復を意味します。ほとんどのアプリケーションでは10-12が推奨値です。
ソルトとは何ですか?なぜ重要なのですか?
ソルトは各パスワードハッシュに固有のランダムな128ビット値です。攻撃者が事前に計算されたレインボーテーブルを使用するのを防ぎ、同じパスワードが異なるハッシュを生成することを保証します。Bcryptはソルトを自動生成し、ハッシュ出力に埋め込みます。
2025年でもBcryptは安全ですか?
はい、Bcryptは引き続き推奨されるパスワードハッシュアルゴリズムの一つです。Argon2などの新しいアルゴリズムが存在しますが、適切なコストファクター(12以上)で使用すれば安全とされています。
Bcryptの最大パスワード長は?
Bcryptの最大入力長は72バイトです。72バイトを超えるパスワードはサイレントに切り詰められます。より長いパスワードの場合は、Bcryptを適用する前にSHA-256で事前ハッシュすることを検討してください。
BcryptはMD5、SHA-256などのハッシュ関数と比べてどうですか?
速度向けに設計されたMD5やSHA-256とは異なり、Bcryptは意図的に遅く計算コストが高くなっています。汎用ハッシュ関数は毎秒数十億回計算できますが、ブルートフォース攻撃に対して脆弱です。
Bcryptハッシュのフォーマットは?
Bcryptハッシュは$2b$cost$salt+hashの形式に従います。例:$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy。プレフィックス$2b$はアルゴリズムバージョンを識別し、コストファクター、22文字のソルト、31文字のハッシュが続きます。
$2a$、$2b$、$2y$の違いは?
これらはBcryptのバージョン識別子です。$2a$はオリジナルバージョン、$2b$はOpenBSDのパスワード長処理のマイナーな問題を修正、$2y$はPHP固有のバリアントです。3つとも互換性があります。
オンラインBcryptジェネレーターを使用しても安全ですか?
処理が完全にブラウザ内(クライアントサイド)で実行される場合、完全に安全です。パスワードデータがサーバーに送信されることはありません。このツールはJavaScriptを使用してすべてローカルで処理します。
適切なコストファクターはどのように選択すべきですか?
コストファクターはハッシュ生成が許容できる速度に保ちながら可能な限り高くすべきです。良い目安:サーバーでハッシュに約250-500msかかるコストを選択してください。
Bcryptはデータの暗号化に使用できますか?
いいえ、Bcryptは一方方向のハッシュ関数であり、暗号化アルゴリズムではありません。元のパスワードを復元するために逆方向に計算することはできません。パスワード検証専用です。
なぜBcryptは意図的に遅く設計されているのですか?
Bcryptはブルートフォース攻撃や辞書攻撃を計算的に高価にするために意図的に遅く設計されています。通常のハッシュ関数は毎秒数百万のパスワードを処理できますが、Bcryptは数百しか処理できません。
パスワードとBcryptハッシュの照合はどう行いますか?
検証するには、保存されたハッシュからソルトとコストファクターを抽出し、入力パスワードに同じパラメータでBcryptを実行し、結果のハッシュを保存されたハッシュと比較します。一致すればパスワードは正しいです。