请教下网站登录时用户名和密码是如何验证的,有先后顺序吗?

是不是都可以单独判断出是用户名错误还是密码错误?为什么很多网站在用户名或密码错误的时候给出一样的报错:用户名或密码错误。这种情况出于什么考虑?

请专业人员用通俗的语言解答一下,谢谢~


郎朗坤
浏览 227回答 2
2回答

繁星coding

还是有顺序的,一般是先根据用户名查到用户记录,然后再把这条记录的密码取出来,并根据加密算法与你输入的密码进行比对。这样比直接用用户名和密码来取记录有以下好处节省查询开销,用户名和密码是两个字段,你用两个字段做查询条件肯定比一个字段要慢,就算你做了联合索引,还是要慢,因为字段长度增加了。可以先行判断出用户是否存在,这样可以有更加友好的提示,比如你在问题中提到的。但是大多数网站为了防止用户数据库被爆库,会直接告诉你一个笼统的结果,比如"找不到匹配的记录"之类的。

当年话下

先判断用户名是否存在,再判断密码是否正确。如果用户名存在 {     如果密码正确 {         登录成功     }     否则 {         密码错误     }} 否则 {     用户名错误 }很多网站只显示“用户名或密码错误”一方面的原因是出于安全考虑,怕有人恶意猜测用户名。
打开App,查看更多内容
随时随地看视频慕课网APP