位数比种类更管用
决定强度的与其说是“混了几种字符”,不如说是“有几位”。多加一种字符,每一位承载的信息只多一点;多加几位,多出来的那部分是整个乘上去的。
看熵值就很清楚。大小写字母加数字凑 12 位是 71 比特,而只用小写字母、凑够 20 位就有 94 比特。遇到不收符号的网站,用位数补回来就行。
该以多少比特为目标
熵是把“平均要试多少次才能全部猜中”写成比特的数字。每多一个比特,需要的次数就翻一倍。
六十几比特够用在随手注册、很快就丢的账号上;打算长期用的账号要往 80 比特以上做。像密码管理器的主密码或者加密密钥这种当保险箱用的,就放到 100 比特以上。这个工具默认的 16 位、四种字符全开,算出来是 102 比特。
什么时候排除易混字符
0 和大写 O,数字 1 和小写 l 、大写 I,在不少字体里根本分不出来。如果这个密码要写在纸上交给别人,或者要在另一台设备上手动敲进去,去掉它们会省事。代价是可用字符少了五个、熵稍微降一点,多加一两位就补回来了。
网站不收符号的时候
有些服务一边要求带符号,一边又拒收其中某几个。这个工具从一开始就没有放引号和尖括号,因为粘贴的地方常常要求转义。要是还被拒,就把符号关掉,改用位数顶上。
生成之后
这个值是在浏览器里生成的,不会存到任何地方。关掉标签页就没了,所以复制出来后请直接放进密码管理器。
比加长更要紧的是同一个密码不要用在两个地方。一处泄露,其余账号会跟着一起被打开。再长的密码,只要重复使用,安全程度就等于持有它的那个最不上心的服务。