はじめに この記事は Scala Advent Calendar(Adventar) の13日目です。パスワード保存に使うBCryptの話をします。 安全にパスワードを保存する 皆様、パスワードをセキュアに保存しているでしょうか?まさかとは思いますが、パスワードを生で保存するとかおぞましいことをしてないでしょうか? パスワードは攻撃者によってソースコード・DBすべて取得されたとしても、元のパスワードを類推することを不可能とするように保存することにより、パスワード漏洩最後の砦として機能させることが望ましいです。 この条件を満たす方法として、パスワードをHash化して保存する方法があります。ただし単純なHash化では駄目です。まず、類推されにくくて衝突しずらい、暗号学的に良いHash関数アルゴリズムが必要です。また、よくあるHash関数アルゴリズムは(元々高速に計算することを意図していたのもあ