【发布时间】:2013-08-30 20:07:02
【问题描述】:
出于好奇,我想知道为什么网络应用程序通常使用用户 ID 和密码。
我不明白为什么一个足够长的密码也不适合。例如,由服务器应用程序生成的密码。
应用最终是否也必须使用用户 ID?
只要密码是唯一且长的,它就可以完美地识别用户。
【问题讨论】:
标签: security web-applications web login login-control
出于好奇,我想知道为什么网络应用程序通常使用用户 ID 和密码。
我不明白为什么一个足够长的密码也不适合。例如,由服务器应用程序生成的密码。
应用最终是否也必须使用用户 ID?
只要密码是唯一且长的,它就可以完美地识别用户。
【问题讨论】:
标签: security web-applications web login login-control
Web 应用程序不只使用密码的最重要原因之一是两个用户可能拥有相同的密码。
当密码是识别用户的唯一因素时,用户 A 可以使用他的密码登录,并且可以访问用户 B 的帐户而不是他自己的帐户,因为他们使用相同的密码并且系统需要选择一个用户登录。
【讨论】:
一方面,如果没有用户 ID,密码重置会相当复杂。
但真正的原因是,如果您没有用户 ID,就无法使用加盐来保护密码,这意味着您实际上不会真正保护您的密码。
原因如下。加盐要求您知道用于生成密码哈希的盐。流程如下:
如果您没有用户 ID,则需要针对数据库中的每个用户检查您的密码。
这在复杂性上等同于检查一个密码是否针对整个数据库,而这是您有意设计的(在时间或金钱上)非常昂贵的东西。
【讨论】: