繁体   English   中英

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

[英]why is the hash-method in the seeder different from the hash-method in the controller? Laravel 5.1

在我的播种机中,我将这些代码改为:

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

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

当我通过控制器中的输入对相同代码进行哈希处理时,由于Bcrypt添加了随机盐,因此它会给出不同的值。

控制器:

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

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

它给了我这个价值:

$ 2Y $ 10 $ xxVU78CphJEGOOTT1teNY.LeLb7kBjDvP9Npbf1h4.T4HDtuIFD16

对于我的应用程序,我想检查这两个值是否匹配。 是否有人知道我该怎么做?

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

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

您可以阅读有关Laravel Hashing的更多信息。

回复我帖子的具体代码:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM