2014-10-09 29 views
-1

當我創建一個用戶時,用戶名和密碼保存在一個散列中。現在我想在登錄時使用我的用戶名和密碼,可以由系統讀取。我使用Laravel接受數據庫中由散列填入的用戶名

下面是我的用戶控制器

public function postSignin() { 
     if (Auth::attempt(array('username'=>Input::get('username'), 'password'=>Input::get('password')))) { 
      return Redirect::to('admin/dashboard')->with('message', 'You are now logged in!'); 
     } else { 
      return Redirect::to('users/login') 
      ->with('message', 'Your username/password combination was incorrect') 
      ->withInput(); 
      } 
     } 
+0

據我所知,bcrypt使用單向散列算法。所以,作爲一個簡短的答案,我們不能從哈希產生用戶名/密碼。 – 2014-10-09 03:29:11

+3

用戶名應該以純文本形式存儲,並且密碼是散列的。不要把它們混在一起。你永遠不應該能夠以純文本閱讀密碼,並且哈希是單向的。 – Mike 2014-10-09 03:30:29

+0

嗨,邁克。我們在日誌中的用戶名軟件質量保證的要求應該是大小寫敏感的,所以我決定什麼是「區分大小寫」有那麼encypting它做的也加密的用戶名 – Lumiere 2014-10-09 03:38:25

回答

1

區分大小寫不需要散列碼。您在數據庫表中使用非_CI編碼。 CI代表不區分大小寫。

假設你仍然要哈希的用戶名,你就只需要散列用戶輸入(用戶名),在它被存儲在數據庫中以相同的方式,把它傳遞給驗證腳本之前。