文本

BCrypt 哈希计算

在浏览器中计算输入字符串的 BCrypt 哈希值,输入内容不会发送到服务器。


文本
轮次

※哈希值在您的浏览器中计算,输入内容和哈希值均不会发送至服务器。


Tips

  • BCrypt はソルトを自動的に付与するため、同じ文字列でもハッシュ化のたびに異なる値が生成されます。
  • ラウンド数(コストファクター)を増やすと計算コストが上がり、総当たり攻撃への耐性が高まります。一般的に 10〜12 が推奨値です。
  • PHP では password_hash($password, PASSWORD_BCRYPT)、Ruby では bcrypt-ruby gem で同等のハッシュを生成できます。
  • ハッシュ値の先頭 $2y$ はアルゴリズム識別子、その後の数字がラウンド数を表します。
  • より新しい Argon2(PHP 7.2 以降対応)もパスワード保存に適したアルゴリズムとして検討してください。

余談ですが ― パスワードとハッシュの攻防 ― なぜBCryptが選ばれるのか

2012年のLinkedIn漏洩事件では、約650万件のパスワードが ソルトなしのSHA-1 のみで保存されており、レインボーテーブル攻撃によって数日で大半が解読されてしまいました。この事件はパスワード保存の設計に大きな警鐘を鳴らしました。

現代の高性能GPU(NVIDIA RTX 4090)はMD5を毎秒約680億回計算できます。BCryptは意図的に計算コストを高く設計しており、ラウンド数12の設定では毎秒数千回程度に抑えられるため、総当たり攻撃への耐性が格段に高くなります。同じ計算能力でも、MD5なら秒間680億回試せるところをBCryptなら数千回しか試せない ― この差が重要です。

BCryptはもともと1999年にOpenBSD向けに設計されたアルゴリズムです。20年以上経った現在でも現役で使われており、新しい Argon2(PHP 7.2以降で対応)と並んでパスワード保存の標準的な選択肢となっています。