2017-06-22 101 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 
}