宅ふぁいる便から平文パスワードが漏洩した件を受けて、あらためてパスワードの安全な保存方法が関心を集めています。現在のパスワード保存のベストプラクティスは、パスワード保存に特化したハッシュ関数(ソルトやストレッチングも用いる)であるbcryptやArgon2などを用いることです。PHPの場合は、PHP5.5以降で使用できるpassword_hash関数が非常に便利ですし、他の言語やアプリケーションフレームワークでも、それぞれ用意されているパスワード保護の機能を使うことはパスワード保護の第一選択肢となります。 なかでもbcryptは、PHPのpassword_hash関数のデフォルトアルゴリズムである他、他の言語でも安全なハッシュ保存機能として広く利用されていますが、パスワードが最大72文字で切り詰められるという実装上の特性があり、その点が気になる人もいるようです(この制限はDoS脆弱性回避が
![bcryptの72文字制限をSHA-512ハッシュで回避する方式の注意点](https://cdn-ak-scissors.b.st-hatena.com/image/square/075eea349143332ad75168969ee893fe4ebb5970/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEijRblb7_aMM2ftfGE1JwUroZNetAHYbgCeTR9kPDBS6ilt0NUZvQN1hk20l0uVw2zh9KPH-OQbKGlYrIh4kJUbWaYqOd8DySWoCVUO5ErTiCs8XYHlvzqcudIju8S8Wl5psf2ImIp1sQ%2Fw1200-h630-p-k-no-nu%2Fdropbox-password-hash.png)