メインコンテンツへスキップ
EXBANK
用語集一覧へ
— Glossary

bcryptBlowfish-based crypt

読み: ビークリプト
短い定義

bcrypt は、Blowfish 暗号を基にしたパスワードハッシュ関数で、コストパラメータで計算量を調整できます。1999年から使われる古典的だが現役のアルゴリズムです。

詳細解説

bcrypt は Niels Provos と David Mazières が1999年に発表したパスワードハッシュ関数で、Blowfish の鍵スケジュールを反復させた EksBlowfishSetup を中核とします。出力は「$2b$コスト$22文字Salt$31文字Hash」の60文字形式で、コストパラメータ (4〜31) を上げると2の指数回の処理が増え、ハードウェア進化に応じて鍵伸長強度を引き上げられるのが画期的でした。現在の推奨コストは10〜12で、ログイン応答が約100〜250ms に収まる範囲が目安です。72バイト超の入力は無視される長さ制限と、パスワードに NULL 文字が含まれると切り詰められる挙動に注意が必要です。後継として Argon2 が2015年のPHCコンペで勝者となり、新規プロジェクトはArgon2 を推奨されますが、bcryptは枯れた実績で今も多用されます。

実装例 / 使い方

  • 01Node.js で bcrypt.hash(password, 12) → cost 12
  • 02Rails の has_secure_password はデフォルトで bcrypt cost 12
  • 0372バイト超は切捨てなので長文パスフレーズは pre-hash 要
IMPLEMENT

bcryptを、実際に活用する

用語の意味は分かった。次は実装。EXBANK の無料診断で、貴社で具体的にどう活用できるかをご提案します。

営業時間 平日10-18時 / 通常24時間以内に返信