2015-11-20 74 views
0

我將項目轉換爲Laravel。我有一個存儲密碼哈希的現有數據。如果我將這個項目上傳到我的遠程服務器。我的客戶無法登錄。他們必須使用忘記的密碼部分。如何在將項目轉換爲Laravel後使用舊密碼

但這對我的客戶並不好。

我想使用bcrypt進行密碼散列,就像Laravel一樣。但在我的舊系統。我用了不同的方法。爲了完全兼容,我不想在默認的Laravel中改變任何東西。

可能是我可以在數據庫中創建一個不同的列。我可以存儲一個月的新哈希值。對於活躍用戶,我可以抓取新的哈希值,並且可以轉換我的系統。

但這些都不是很好的解決方案。你有什麼主意嗎 ?

+1

使用新密碼向每個用戶發送電子郵件。有沒有解決方法,他們將不得不遲早改變。 – Andrew

+0

你用什麼算法來處理舊的哈希?也許這[回答](http://stackoverflow.com/a/14402451/575765)可以給你一個想法。 – martinstoeckli

回答

5

我解決這個問題的方法是創建一箇舊哈希表。然後,當用戶登錄時,我檢查他們是否還有舊的散列。如果他們這樣做,我會嘗試使用舊的登錄算法,如果成功,我使用他們提供的密碼來設置新的散列並刪除舊的散列。如果他們沒有舊的哈希,我只是用新算法登錄它們。

+0

應該承認這是一個非常好的主意;) – Moppo

+0

$ credentials = $ request-> only(['mail','password']);我如何傳遞憑證的表名? –

+0

另一個好的做法是,在一個時間點,你必須做一個郵件,用戶應該改變那裏的密碼,因爲安全原因 – lordkain