2017-06-22 100 views
0

我首先在Laravel中创建了一个Web应用程序。现在我正在使用Ionic Frame工作开发其移动应用程序。如何将字符串密码与laravel进行比较加密密码

在使用laravel时,laravel将密码转换为其加密。 现在,在使用Ionic与Laravel集成API的同时,我正面临一个问题:如何将通过移动应用程序输入的密码与laravel表中的加密密码进行比较。

如果它本来是Web应用程序,那么它的工作正常,但对于API集成我正面临着这个问题。请帮助我

+0

为什么你需要这样做?你有Auth门面:'Auth :: attempt(['email'=> $ email,'password'=> $ password])''返回true/false –

回答

2

2种方式:

1.

$hashedPassword = User::find(1)->password; 

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

2.

$hashedPassword = User::find(1)->password; 

if (Hash::make('plain-text-password') === $hashedPassword) { 
    // The passwords match... 
} 

然而,作为官方文件说,作为一个亲DRY(不要重复自己)方法,如果您使用Laravel附带的LoginController,则您可能不需要直接使用这两种方式,因为它会自动完成第一种方式安以轩。

编号:https://laravel.com/docs/5.4/hashing

重要更新

张贴在这里不起作用,因为Laravel生成每个哈希函数随机盐的第二种方法;使每个散列与数据库中的原始散列密码不同,作为附加安全措施。改用第一种方法。

0

与password_hash('rasmuslerdorf',PASSWORD_DEFAULT)的结果进行比较。“\ n”;

1

Hash :: check是最好的方法。

if(Hash::check('plain password', 'encrypted password')){ 
    //enter your code 
}