为什么播种机中的哈希方法与控制器中的哈希方法不同? Laravel 5.1

时间:2015-10-31 10:28:25

标签: php mysql laravel hash laravel-5.1

在我的播种机中,我已经将我的代码改为:

'validCode' => Hash::make('1110578abc')

它在数据库中给出了这个结果: $ 2y $ 10 $ GaKhhxrMNCnzr

当我在控制器中输入相同的代码时,由于Bcrypt添加了随机盐,因此它会给出不同的值。

控制器:

dd(Hash::make(Input::get('code')));

(我在此输入字段中输入了1110578abc。)

它给了我这个价值:

$ 2Y $ 10 $ xxVU78CphJEGOOTT1teNY.LeLb7kBjDvP9Npbf1h4.T4HDtuIFD16

对于我的应用程序,我想检查这两个值是否匹配。是否有人知道如何做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用Hash::check()方法。 check方法允许您验证给定的纯文本字符串是否与给定的哈希相对应。 尝试:

if (Hash::check('plain-text', $hashedPassword)) {
    // The passwords match...
}

You can read more about Laravel Hashing.

答案 1 :(得分:0)

回复我帖子的具体代码:

if (Hash::check(Input::get('code') , '$2y$10$GaKhhxrMNCnzr'))
{ 
    dd('match');
} 
else 
{ 
    dd('no match'); 
}

这解决了它并返回'匹配'。