如何将字符串密码与 laravel 加密密码进行比较
How to compare a string password with laravel Encrypted Password
我首先在 Laravel.Now 中创建了一个 Web 应用程序,我正在使用 Ionic Frame work 开发它的移动应用程序。
在使用 laravel 时,laravel 将密码转换为加密。
现在,在 Ionic 中将 API 与 Laravel 集成时,我遇到了一个问题,即如何将通过移动应用程序输入的密码与 [=20= 中的加密密码进行比较] table.
如果它本来是网络应用程序,那么它工作正常,但对于 API 集成,我面临这个问题。请帮助我
2 种方式:
1.
$hashedPassword = User::find(1)->password;
if (Hash::check('plain-text-password', $hashedPassword)) {
// The passwords match...
}
$hashedPassword = User::find(1)->password;
if (Hash::make('plain-text-password') === $hashedPassword) {
// The passwords match...
}
然而,正如官方文档所说,作为一种支持 DRY(不要重复自己)的方法,如果您使用 LoginController 包含在 Laravel],您可能不需要直接使用这两种方式,因为它已经自动执行了第一种方式。
参考:https://laravel.com/docs/5.4/hashing
重要更新
此处发布的第二种方式无效,因为 Laravel 使用 bcrypt, which generates random a salt on each hash; making each hash different from the original hashed password in the the database. Use the first way instead. You may also read 。
Hash::check 是最好的方法。
if(Hash::check('plain password', 'encrypted password')){
//enter your code
}
我首先在 Laravel.Now 中创建了一个 Web 应用程序,我正在使用 Ionic Frame work 开发它的移动应用程序。
在使用 laravel 时,laravel 将密码转换为加密。 现在,在 Ionic 中将 API 与 Laravel 集成时,我遇到了一个问题,即如何将通过移动应用程序输入的密码与 [=20= 中的加密密码进行比较] table.
如果它本来是网络应用程序,那么它工作正常,但对于 API 集成,我面临这个问题。请帮助我
2 种方式:
1.
$hashedPassword = User::find(1)->password;
if (Hash::check('plain-text-password', $hashedPassword)) {
// The passwords match...
}
$hashedPassword = User::find(1)->password;
if (Hash::make('plain-text-password') === $hashedPassword) {
// The passwords match...
}
然而,正如官方文档所说,作为一种支持 DRY(不要重复自己)的方法,如果您使用 LoginController 包含在 Laravel],您可能不需要直接使用这两种方式,因为它已经自动执行了第一种方式。
参考:https://laravel.com/docs/5.4/hashing
重要更新
此处发布的第二种方式无效,因为 Laravel 使用 bcrypt, which generates random a salt on each hash; making each hash different from the original hashed password in the the database. Use the first way instead. You may also read
Hash::check 是最好的方法。
if(Hash::check('plain password', 'encrypted password')){
//enter your code
}