ハッシュ/暗号

Bcrypt Hash + Verify

bcryptでパスワードをハッシュ化(ランダムなソルトと調整可能なコスト)し、既存のbcryptハッシュに対してパスワードを検証。


                    

Bcrypt is a deliberately slow password-hashing algorithm: unlike MD5 or SHA-256, it intentionally requires heavy computation so that brute-forcing passwords stays impractical even if a database of hashes leaks.

How to use it

Common uses

Things to keep in mind

Pick a cost factor that keeps hashing around 100-300ms on your target server — a balance between security and login-time load.

Bcrypt truncates passwords longer than 72 bytes — characters beyond that limit are ignored by the algorithm.

このツールに関する記事: Bcrypt:パスワードが速くではなく遅くハッシュ化される理由

よくある質問

bcryptに「コスト」や「ラウンド数」係数があるのはなぜですか?

コスト係数は内部でハッシュ処理を何回繰り返すかを制御し、値が大きくなるほどハッシュ処理は指数関数的に遅くなります。これにより、ハードウェアが高速化しても総当たり攻撃に耐えられるよう、意図的に十分遅く保つことができます。

パスワードに関係なくbcryptハッシュが常に同じ長さなのはなぜですか?

Bcryptはアルゴリズムのバージョン、コスト係数、ソルト、ハッシュをまとめてエンコードした固定長のハッシュ(通常60文字)を出力します。長さは元のパスワードの長さに依存しません。

bcryptには別途ソルトのフィールドが必要ですか?

いいえ。ソルトは自動生成され、出力文字列に直接埋め込まれるため、別途保存・管理する必要はありません。パスワードをハッシュと照合するたびに含まれています。

bcryptにはパスワードの長さの制限がありますか?

はい、bcryptはパスワードの最初の72バイトしか処理しません——それを超える部分は警告なく単に切り捨てられます。実際にはこれが問題になることはめったにありませんが、非常に長いパスワードや、1文字が複数バイトを占めることがある非ASCII文字を扱う際には覚えておく価値があります。

Argon2があるのに、なぜbcryptがまだ推奨されるのですか?

Bcryptは数十年にわたって実際に使われてきた実績があり、あらゆる言語やフレームワークで広くサポートされており、依然として十分に信頼できる選択肢です。Argon2はGPU/ASICを使った攻撃への耐性から新規システムでは優先的に推奨されますが、bcryptが危険とみなされているわけではなく、専用ハードウェアへの耐性がやや劣るだけです。

記事: ハッシュ/暗号

Hash Generator:MD5、SHA-1、SHA-256はどう違うのか

MD5が今もファイルの整合性検証に使われるが、パスワードには使われない理由。

Checksum Verifier:ファイルが壊れていないか確認する方法

一致するチェックサムがファイルの整合性を確認する一方、誰が作成したかは確認しない理由。

HMAC:鍵付きハッシュが通常のハッシュとどう違うか

通常のSHA-256がメッセージの改ざんから保護しない理由と、HMACがそれを可能にする理由。

UUID:ほとんど重複しない識別子はどう生成されるか

UUID v4が数百万台のマシンで独立して、衝突リスクなしに生成できる理由。

パスワード生成ツール:パスワードを本当に強くするものは何か

辞書の単語からなる長いパスワードが、記号や数字を含む短いパスワードより強い理由。

AES:共通鍵暗号の仕組み

AESで同じ鍵がデータの暗号化と復号の両方に使われる理由と、それが公開鍵暗号とどう違うか。

Argon2:このアルゴリズムがパスワードハッシュコンペティションで優勝した理由

Argon2が古いパスワードハッシュ化アルゴリズムよりGPUを使った攻撃に対してどう優れた防御を行うか。

Scrypt:このアルゴリズムがなぜこれほど多くのメモリを必要とするか

scryptがASICデバイスでのクラッキングを困難にするために意図的に大量のメモリを要求する理由。

TOTP:認証アプリのワンタイムコードはどう機能するか

Google Authenticatorのコードがインターネットなしで動作し、時刻だけでサーバーと同期する理由。

PBKDF2:最も古い鍵ストレッチング標準

PBKDF2の推奨反復回数が毎年増え続ける理由。

X.509:SSL証明書の中身は何か

緑色の錠前を表示する前に、ブラウザがサイトの証明書で正確に何をチェックしているか。

PGP:公開鍵と秘密鍵による暗号化の仕組み

PGPの公開鍵は自由に共有できるが、秘密鍵は決して共有してはいけない理由。