我正在處理ASP.NET 2.0中的應用程序,並且我給出了一個任務,即密碼不應與過去三個月的c#.net匹配。 前三個月密碼字段將爲空我將在前三個月存儲它們,但從第四個月開始,我必須如何將密碼與所有字段進行比較後再次將密碼存儲在第一個字段中。告訴我一些解決方案我的想法是完全被困住了。比較密碼與最近三個月的密碼
-1
A
回答
2
我想說這樣做的最好方法是有一個單獨的表,包括userID,密碼散列和時間戳。當密碼更改時,您將插入此處,時間戳將在插入時爲當前時間。
SELECT count(*) FROM oldpasswords where userid = :p_userid and
password = :p_pass and timestamp < DATE_SUB(NOW(), INTERVAL 3 MONTH);
如果計數> 0,他們已經在過去3個月內使用過它:
CREATE TABLE `oldpasswords` (
`userid` int(11) NOT NULL,
`password` varchar(255) NOT NULL default '0',
`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`userid`,`password`, `timestamp`)
);
然後,當用戶試圖更改其密碼就可以查詢該表。如果不是,則將其插入此表並更改主用戶表記錄。
您可能還想定期清理此表。
DELETE FROM oldpasswords WHERE timestamp < DATE_SUB(NOW(), INTERVAL 3 MONTH);
會刪除超過3個月的任何東西,因爲我們不再需要它了。
0
你基本上是在查看一張存儲「退休」密碼的表格,該表格與其所屬的用戶帳戶以及更改時間相關聯。當他們去改變工作流程進行:
- 檢查是否有新的密碼是一樣的當前密碼
- 檢查新的密碼是「舊密碼」數據庫(與該用戶相關)和時間之內範圍
如果這兩個都是假,移動到的變化:
- 添加當前密碼作爲新條目「老密碼「數據庫(帶時間戳)
- 將用戶密碼更改爲新密碼並將其保存回其配置文件
- (可選)修剪」舊密碼「數據庫以查找比我們所關心的項目更舊的數據。
至少我是這樣解決它的。
相關問題
- 1. 比較兩個密碼PHP
- 2. Phpunit密碼比較
- 3. 將兩個密碼與Jquery比較
- 4. 如何比較Microsoft Access密碼與用戶提供的密碼?
- 5. CakePHP的3 - 比較密碼
- 6. 比較由bcrypt加密的密碼
- 7. 如何比較散列密碼與普通密碼?
- 8. 如何比較密碼與鹽漬散列密碼
- 9. Python輸入密碼並與暗號密碼數據庫比較
- 10. 手動轉換密碼和鹽以與ASPNETDB密碼比較
- 11. 登錄加密密碼進行比較
- 12. 無法比較/解密密碼(PHP/Android)
- 13. 角比較密碼指令
- 14. 比較(密碼)屬性
- 15. 比較散列密碼
- 16. PHP和MySQL比較密碼
- 17. Javascript密碼字段比較
- 18. 比較散列密碼
- 19. openldap auththentication php5 - 比較密碼
- 20. 比較密碼與bCrypt返回假
- 21. 比較密碼與隨機鹽
- 22. 散列密碼並與MD5比較
- 23. 如何將字符串密碼與laravel進行比較加密密碼
- 24. 代碼比較登錄名和密碼
- 25. 比較兩個密碼哈希值 - nodejs
- 26. php比較兩個密碼字符串
- 27. 用戶密碼驗證與他最近在Drupal6中的密碼歷史記錄
- 28. 比較確認密碼和散列密碼| Laravel 4
- 29. 如何比較密碼並確認密碼?
- 30. 在ASP.Net中比較密碼和確認密碼MVC