出于好奇,我想知道为什么网络应用通常会使用用户ID和密码。
我没有看到原因,为什么足够长的密码也不合适。例如,服务器应用程序生成的密码。
是否有理由认为应用最终还必须使用用户ID?
只要密码是唯一且长的,它就可以完美地识别用户。
答案 0 :(得分:1)
首先,没有用户ID,密码重置会非常复杂。
但真正的原因是,如果您没有用户ID,就不可能使用salting来保护密码,这意味着您实际上并没有真正保护您的密码。
这就是原因。 Salting要求您知道用于生成密码哈希的salt。过程如下:
如果您没有用户ID,则需要针对数据库中的每个用户检查密码。
这相当于检查一个密码是否违反整个数据库的复杂性,这是您有意想要设计的昂贵(时间或金钱)。
答案 1 :(得分:1)
Web应用程序不使用密码的最重要原因之一是两个用户可以使用相同的密码。
当密码是识别用户的唯一因素时,用户A可以使用他的密码登录并且可以访问用户B的帐户而不是他自己的帐户,因为他们使用相同的密码并且系统需要选择一个用户登录。