我正在查看一段生成随机密码的代码。默认密码长度为6;代码选择一个大写字母,一个小写字母和一个数字,然后从所有三个类别中随机选择其余字符。最后,人物被洗牌。
我想知道的是,如果强制密码包含至少一个大写,一个小写和一个数字,实际上会使密码变弱。它确实减少了可能的密码组合的数量,所以我倾向于说放弃这个要求会给我一个具有更高搜索空间的密码。
你们有什么想法呢?
答案 0 :(得分:0)
假设密码策略只有两个规则,一个与最小长度相关,另一个与字符混合和复杂性相关(区分大小写规则,混合数字,特殊字符等)。
我们现在假设我们坚持使用N位密码策略,例如在您的情况下,系统每个密码将完全由6个字符组成。由于我们无法应用第一条规则(现在预定大小),我们只剩下第二条规则选项。我们申请吗?
事实上,第二条规则的所有变体实际上都会降低密码的最大熵(现在可能的组合较少)。暴力攻击将在更短的时间内耗尽可用空间;特别是如果N太小,这可能会产生一些影响(BTW 6太小)。不知怎的,我们可以说专家用户,默认情况下使用复杂的密码,并没有从这些规则中受益。
但是,您需要为通常选择轻松猜测的普通用户选择这些规则。一个好的破解者会使用字典攻击,彩虹表(特别是如果你没有在密码中使用salting,通常是类似哈希的函数),然后进行更广泛的暴力攻击。
根据这条规则,它主要是您保护用户的词典攻击,我们都知道,当我们年轻时,他们是普通用户......我们都经历过这一切!无论如何,你必须增加N并问自己谁将使用你的系统。