検索

キーワード


【PHP】パスワードのハッシュ化について(password_hash)

  • 公開日:2020-09-25 09:20:14
  • 最終更新日:2021-02-05 18:07:52

暗号化

ログインIDとパスワードを入力して送信するログインフォームでは、次の画面に遷移する際には平文(入力された値そのまま)ではなく、暗号化(ハッシュ化)した文字列を送信するのが一般的です。

PHPには暗号化するための関数がいくつか存在し、md5()やsha1()、crypt()などを使って暗号化することができます。

しかし、現在では先に挙げた関数では暗号化した文字列を解読される可能性が高く、PHPの公式ドキュメントによるとpassword_hash関数を利用することを強く勧めています。この関数は、暗号化する際により長い文字列に、より複雑に暗号化してくれます。


password_hash

password_hash(ハッシュ化する文字列, ハッシュアルゴリズム)

password_hashではハッシュアルゴリズムを指定することができます。

  • PASSWORD_DEFAULT
  • PASSWORD_BCRYPT
  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2ID

公式ドキュメントではPASSWORD_DEFAULTを推奨しているので、特に理由がなければこちらを使いましょう。

echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

今回はこのようなハッシュ値が出力されましたが、password_hash関数は出力のたびにハッシュ値を出力してくれるため、解読されにくいというメリットがあります。


まとめ

password_hash関数についてまとめてみました。

暗号化は現代の情報社会では必須ですので、しっかり暗号化した情報を送信するように心がけましょう!


【著者】

當山

主にPHPでのフレームワーク開発やWebアプリの開発に携わってきました。 得意分野はHTML5とCSSによるフロントエンド開発。

よく読まれている記事