2013-04-18 52 views
1

我正在開發一個PHP登錄系統。我想實施限制,以便用戶不能使用以前使用的密碼(最多5箇舊密碼)。什麼是存儲密碼的最佳選擇?我想出了兩個想法的:爲用戶保存密碼記錄的最佳技術?

1) 表:密碼 柱:PasswordID,用戶名,密碼1,密碼2,Password3,Password4,Password5,LastChanged,CurrentPassword。 每個用戶都有自己的行。隨着時間的推移填滿列並相應地重寫。

2) 表:密碼 柱:PasswordID,用戶ID,密碼,DateChanged。 每個用戶最多可以有6行。 PHP會處理找出當前的通過日期。

+0

這是比事實更多的意見,但我會堅持2)。它更靈活。附註:希望你用像BCrypt這樣的鹹味散列存儲密碼。 –

+1

加密將BCrypt;) – Vidarious

+0

+1加密! ;-) –

回答

3

選項2是兩個選項中的更好選擇,只是您不必擔心刪除行。大多數關係數據庫管理系統都有根據某些事情選擇前N個記錄的方法。

選項2更好的主要原因是,如果您增加或減少必須查詢的記錄數,則可以簡單地更新數據庫記錄。

+0

有道理,謝謝。您也給了我一個想法,即通過反覆快速更改密碼來防止濫用重置密碼歷史記錄。通過單獨跟蹤密碼,我可以實現重置/更改年齡限制! – Vidarious