概要
- laravelにてHash化された文字列と平文の文字列を比較する方法をまとめる。
ご案内
- laravelではなくPHPでHash化された文字列と平文の文字列を比較したい場合はこちら
そもそも
- laravelのHash化はBcryptHasherが使用されている場合、結局vendorディレクトリ直下でPHPのpassword_hash()関数が用いられている。
- これは不可逆ハッシュアルゴリズムなので、「一度ハッシュ化された文字列を平文に戻し、if文で文字列として比較する」なんてことはできない。(そもそもハッシュ化する文字列はそれなりに意味があってハッシュ化している。安易にコード内で平文に戻さないほうが良いのかもしれない。)
方法
-
下記のようにHashファサードを用いることで平文文字列とハッシュ化された文字列を比較する事ができる。
Hash::check(平文の文字列, ハッシュ化された文字列)