【PHP】パスワードを簡単に暗号化する方法【セキュリティ強化】

はるかす
こんにちは、はるかす(@mametyralove)です。

本記事ではPHPを使って何らかの文字列を暗号化して、それを検証する方法までを解説していきます。

厳密に言うと今回試すのは暗号化ではなくハッシュ化と言います。いずれにせよ意味不明な文字列に変換されることは変わりないです。

暗号化とハッシュ化で違う点は、元に戻せるか戻せないかの違いです。

暗号化だと暗号化された文字列から元の文字列に戻すことができます。秘匿情報を保存しておく時などに暗号化されます。情報は戻すことができないと意味がないので。

しかしハッシュ化は不可逆変換であるので一度変換すると戻すことができません(検証することはできる)。パスワードは検証するだけで良いので良くハッシュ化が使われます。

もう一度確認しておきますが、今回解説する方法はハッシュ化です。

 

文字列のハッシュ化

文字列を元に戻せないようにするとなると沢山のコードを書かないといけないと思うかもしれませんが、実はPHPには既に関数に定義されています。

7行目の後半のPASSWORD_DEFAULTはオプションみたいなものです。複数種類があるみたいですが、基本これで良いでしょう。詳しくは調べてみてください。

ハッシュ化されたパスワードは9行目のように訳のわからない文字列になります。元の文字列に戻すことはできません。

 

ハッシュ化された文字列の検証

PHPでは検証する関数も既に定義されているので簡単にパスワードの検証をすることができます。

password_verify()を使えば真偽値が返り値として帰ってくるので、第一引数に入力/送信されたパスワード第二引数にハッシュ化されたパスワードを設定します。

引数の順番を間違えると機能しないので注意しなければいけません。

あとはif文か何かを使って処理を分けると良いでしょう。

 

おしまい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です