很多系统在设置密码的时候,要求用户输入大写字母、小写字母、数字字母混合,当我们输入三者混合之后,就会提示密码强度高,当我们输入两者混合时就会提示密码强度中。
在道理吗?好像有道理。
假如这个系统要求密码至少 6 位才参与评级,那么 6 位大写、小写、数字有多少种可能呢?(26 + 26 + 10) 的 6 次方,即 56,800,235,584。
如果我们用纯小写呢?308,915,776,的确小了很多。
但是:
可以看到,其被暴力破解成功的机率更小。
其实作为软件设计者,我是不建议强制用户使用多少种混合的。
因为稍微增加一点位数,暴力破解成功机率就更小,现在哪个用户没有几十、上百个帐户?每个帐户密码都有千奇百怪的要求,搞得用户记得记不到,能不能给用户更多的自由度?
还有,人家暴力破解说不定已经将大写、小写、数字加入字典了,也就是说即使密码中没有大写字母,暴力破解的人也会拿大写字母去破解,试探的次数理论上是一样的。