基本上,我的问题已经在标题中了。
这个想法是:
选项1:
密码: XXXXXXXX(8个字符)
选项2:
用户名: XXXX(4个字符)
密码: XXXX(4个字符)
应该同样安全,对吧?
答案 0 :(得分:2)
从纯理论的角度来看,我会说是的。首先。如果我没有弄错的话,组合的数量应该相等。
但还有其他事情需要考虑。
首先,正如Alex Shesterov所说,您无法更改给定用户的密码。
其次,如果两个人使用相同的密码(可能是哈希生成的),则无法区分这些用户。
因此很难确定是否有人试图通过猜测(暴力)或多个用户使用相同的密码来获取访问权限。如果您有用户/密码组合,则可以单独计算每个用户的访问次数。
另一点是实施。如果您只有识别密码,则必须为每次访问抓取所有密码数据库,这需要线性时间(O(n)),这意味着不断增长的用户群将增加时间和精力,每次访问都是必要的。
最后,对于攻击者而言,只需要找到一个有效密码,而不是有效的用户/密码组合。由于您无法区分不同的用户,如果他们可能使用相同的密码,这可能意味着参与者可以访问整个系统,因为所有用户都是相同的。因此,您需要其他方法来安全地区分用户的系统。
最后,我会坚持用户/密码组合,并改变密码及其长度所需的复杂性。
修改:删除了生日问题的链接,因为它不适用,如评论中所述。