为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
郎朗坤 2023-04-08 18:14:19
是不是都可以单独判断出是用户名错误还是密码错误?为什么很多网站在用户名或密码错误的时候给出一样的报错:用户名或密码错误。这种情况出于什么考虑?请专业人员用通俗的语言解答一下,谢谢~
查看完整描述

2 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

还是有顺序的,一般是先根据用户名查到用户记录,然后再把这条记录的密码取出来,并根据加密算法与你输入的密码进行比对。这样比直接用用户名和密码来取记录有以下好处

  1. 节省查询开销,用户名和密码是两个字段,你用两个字段做查询条件肯定比一个字段要慢,就算你做了联合索引,还是要慢,因为字段长度增加了。

  2. 可以先行判断出用户是否存在,这样可以有更加友好的提示,比如你在问题中提到的。但是大多数网站为了防止用户数据库被爆库,会直接告诉你一个笼统的结果,比如"找不到匹配的记录"之类的。


查看完整回答
反对 回复 2023-04-11
?
当年话下

TA贡献1890条经验 获得超9个赞

先判断用户名是否存在,再判断密码是否正确。

如果用户名存在 {
    如果密码正确 {
        登录成功
    }
    否则 {
        密码错误
    }} 否则 {
    用户名错误
}

很多网站只显示“用户名或密码错误”一方面的原因是出于安全考虑,怕有人恶意猜测用户名。


查看完整回答
反对 回复 2023-04-11
  • 2 回答
  • 0 关注
  • 213 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信