2017-03-04 188 views
0

我有一個名爲「用戶」的表,其中我有我的用戶的用戶名和密碼。將明文密碼轉換爲Laravel加密密碼

密碼爲純文本。現在我已經使用Laravel 5.4和Auth創建了一個新網站。

因此,如果用戶想要登錄到我的網站,我需要將我的密碼純文本轉換爲新的密碼加密。

如何從我的身份驗證中獲得「salt」以及從我的普通密碼和「salt」中獲取加密密碼的工具。原因是我在我的用戶表中創建了一個新列,所以我想在那裏使用查詢加密密碼。

感謝您的幫助!

回答

2

Laravel使用bcrypt()來散列密碼。假設您的純文本密碼存儲在users.password中,您只需循環並輸入bcrpyt()即可。

\App\User::get()->each(function ($user) { 
    $user->password = bcrypt($user->password); 
    $user->save(); 
}); 

上面的代碼將覆蓋存儲在users.password使用散列值的明文值。完成此操作後,用戶應該可以使用Laravel的身份驗證進行登錄。此外,您將無法檢索用戶的純文本密碼。這很好,並且是哈希密碼的重點。

+0

此解決方案具有覆蓋普通密碼的優勢。存儲簡單的密碼是非常糟糕的做法,我不會訂閱任何我知道以純文本存儲密碼的網站 – dparoli