Laravel:ハッシュ化したパスワードとの一致確認
Laravel:ハッシュ化したパスワードとの一致確認
忘れそうなので自分用にメモ。
パスワードとか最近では顧客名をハッシュ化して格納することもあるみたいです。
ハッシュ化すると値が複合不可な文字列に置き換えられ、一見何が何だか確認ができません。
しかし、Laravelをはじめとするフレームワークさん達は複合キーをしっかり理解していて、ハッシュ化した値と称号が可能になります。
今回はそんなケースのコードです。
ハッシュ化する
# Hashをuseする場合
use Illuminate\Support\Facades\Hash;
$password = Hash::make('yourpassword');
# useしなくても簡単にできます
$password = bcrypt('yourpassword');
ハッシュ化するのはとても簡単です。
でも、このハッシュ化した値との一致を普通に行ってしまうと同じ値でも一致してくれません。
$password = 123456789;
$hash_Password = bcrypt($password);
# 一致を確認_1
/* ------------------------ */
if($hash_Password == $password){
echo('True');
}else{
echo('False');
}
# => 答え:False
/* ------------------------ */
# 一致を確認_2
/* ------------------------ */
if($hash_Password == bcrypt($password)){
echo('True');
}else{
echo('False');
}
# => 答え:False
/* ------------------------ */
ハッシュ化した値と一致を確認する方法
$password = 123456789;
$hash_Password = bcrypt($password);
# 一致を確認_3
if($hash_Password == password_verify($password)){
echo('True');
}else{
echo('False');
}
# => 答え:True
【password_verify()】で一致探してあげると正しく検証してくれます。
まとめ
何回か同じネタを探してたので今回ブログにまとめてみました。
自分用のまとめがいつかどなたかの役に立てば最高です。


