是不是都可以單獨判斷出是用戶名錯誤還是密碼錯誤?為什么很多網站在用戶名或密碼錯誤的時候給出一樣的報錯:用戶名或密碼錯誤。這種情況出于什么考慮?請專業人員用通俗的語言解答一下,謝謝~
2 回答

繁星coding
TA貢獻1797條經驗 獲得超4個贊
還是有順序的,一般是先根據用戶名查到用戶記錄,然后再把這條記錄的密碼取出來,并根據加密算法與你輸入的密碼進行比對。這樣比直接用用戶名和密碼來取記錄有以下好處
節省查詢開銷,用戶名和密碼是兩個字段,你用兩個字段做查詢條件肯定比一個字段要慢,就算你做了聯合索引,還是要慢,因為字段長度增加了。
可以先行判斷出用戶是否存在,這樣可以有更加友好的提示,比如你在問題中提到的。但是大多數網站為了防止用戶數據庫被爆庫,會直接告訴你一個籠統的結果,比如"找不到匹配的記錄"之類的。

當年話下
TA貢獻1890條經驗 獲得超9個贊
先判斷用戶名是否存在,再判斷密碼是否正確。
如果用戶名存在 { 如果密碼正確 { 登錄成功 } 否則 { 密碼錯誤 }} 否則 { 用戶名錯誤 }
很多網站只顯示“用戶名或密碼錯誤”一方面的原因是出于安全考慮,怕有人惡意猜測用戶名。
- 2 回答
- 0 關注
- 293 瀏覽
添加回答
舉報
0/150
提交
取消