主题
密码生成器
给一个新系统设密码时,多数人会在自己那套「常用密码」上改两位。这套做法的问题不在于密码本身弱,而在于它是复用的——某个网站被拖库,你所有账号一起沦陷。

打开「密码生成器」看到的初始界面。在浏览器本地完成、数据不离开浏览器,免费。
三个参数
长度(默认 24)——最重要的一项。见下文的对比。
包含特殊字符(默认开)——扩大字符集。
生成数量(默认 3)——一次生成多条备选,挑一个顺眼的。
长度比字符类型更重要
这是最反直觉、也最有用的一条结论。看实算:
| 组成 | 长度 | 字符集 | 强度 |
|---|---|---|---|
| 大小写 + 数字 | 12 | 62 | 71 bit |
| 大小写 + 数字 + 符号 | 12 | 88 | 78 bit |
| 大小写 + 数字 | 16 | 62 | 95 bit |
加一整类特殊符号:+7 bit。多打 4 个字符:+24 bit。
而且 16 位纯字母数字(95 bit)比 12 位带符号(78 bit)强得多,还更好输入——手机上切符号键盘是实实在在的摩擦。
所以默认长度给到 24 而不是靠符号堆强度。完整推导见:密码里加个感叹号,到底管不管用
什么时候关掉特殊字符
某些系统不接受符号。 老旧的企业系统、部分银行,限制只能字母数字。这时把长度提到 20 以上补回来。
需要口头传达或手抄。 符号读起来费劲(「下划线」「井号」),长的纯字母数字反而更容易念清楚。
生成之后怎么保管
生成强密码只解决了一半问题,另一半是你记不住 24 位随机串。
正确做法是用密码管理器,让每个网站一个独立密码,你只记住主密码。不要把它存在记事本、微信收藏、或者浏览器的自动填充里当作唯一副本。
如果暂时没有密码管理器,至少做到:重要账号(邮箱、银行、主力社交)各用一个独立密码,其余低风险站点可以复用。邮箱尤其关键——它是所有账号找回密码的入口。
生成过程在本地
密码在你的浏览器里生成,不经过网络、不写日志。这是密码工具的底线:任何需要把生成结果传回服务器的实现都不该用。
随机源用的是浏览器的加密级随机数接口,并且做了无偏处理——直接对随机数取模会让靠前的字符出现得更频繁(取模偏置),虽然量级极小,但没有理由不做对。