随机密码生成器帮你把「想一个别人猜不到的密码」这件事交给程序。密码之所以容易被攻破,往往不是因为符号不够花哨,而是太短、太有规律。上面的工具可以按你设定的长度和字符集,用浏览器自带的密码学安全随机源生成密码(它本身就是一串随机字符串),也能顺手生成 UUID 标识。
它不会把生成结果发送到任何服务器,全部在你的浏览器本地完成。生成之后怎么用、存在哪里,其实比生成本身更重要,下面一并说明。
密码强度看的是「熵」:长度比花哨更重要
一个密码有多难猜,取决于它有多少种可能的组合,也就是「熵」。长度每多一位,组合数就翻若干倍;而字符集从纯数字扩到大小写字母加符号,同样能大幅提高组合数。关键在于:长度带来的收益往往比多塞几个符号更划算,也更好记。比如 12 位的随机字母数字组合,猜中的难度已经远超 8 位却塞满符号的密码。所以别再把「加个感叹号」当成变强的唯一办法,先把长度提上去。
为什么不能用 Math.random 生成密码
很多编程语言里的普通随机函数(如 Math.random)是为了看起来随机设计的,它的输出可以被预测和推算,用来抽奖或做动画没问题,用来生成密码就不安全。生成密码必须使用密码学安全的随机源,在浏览器里就是 crypto.getRandomValues——它从操作系统提供的熵里取值,攻击者无法通过观察之前的输出推算出下一个。本工具生成密码用的正是这个接口,而不是普通的随机函数。
一次生成、分别使用:别在所有网站共用同一个密码
密码泄露最常见的后果不是某一个网站被攻破,而是一个网站被攻破、撞库攻破一片。很多人图省事,在十几个网站用同一个密码,结果其中一个站点数据泄露,攻击者拿这批账号密码去其他网站挨个试,就能连锁登录。正确做法是每个重要账户用不同的随机密码,这样即使某处泄露,也不会牵连其他账号。这也是密码管理器存在的意义:人脑记不住几十个随机密码,工具可以。
UUID v4 是什么,那串连字符是怎么来的
UUID 是一串 128 位的随机标识,最常见的是第 4 版(v4)。它的标准写法是 8-4-4-4-12 共 36 个字符,中间用 4 个连字符分成五段。这些连字符只是为了让长串更易读,本身不携带信息。因为随机位数足够多,两个 UUID 撞车的概率低到可以忽略,所以它常被用作数据库主键、接口里的请求编号,以及测试时需要的假数据。要提醒的是,UUID 是随机标识,不是密码,也不该拿来当口令。
生成的密码放哪儿:密码管理器怎么用
随机密码的代价是难记,所以别想着背下来,也别记在便签、备忘录或表格里——这些地方一旦被看到或被同步泄露,等于没设防。推荐用密码管理器:你只需要记住一个足够强的主密码,其余的随机密码都由它保存和自动填写。主密码要足够长、且不用于其他任何地方。如果暂时不想装管理器,至少做到重要账户(邮箱、银行、主账号)用独立密码,并且开启两步验证。
关于密码的两个常见误区
一是「定期强制改密码更安全」:如果每次只是把结尾的数字加一,改与不改几乎没有区别,反而让人倾向于选更好猜的密码。比起机械地定期更换,更有效的做法是发现泄露就立刻改、重要账户各不相同、并开启两步验证。二是「复杂就好」:P@ssw0rd 这种把常见词按规则变形得到的密码,早就被破解字典收录,看似复杂实则脆弱。真正的强密码是足够长、足够随机、且没有规律可循的组合。
参考资料
常见问题
多长的密码才算强?
一般建议重要账户至少 12 位,并包含大小写字母、数字和符号。在随机生成的前提下,长度比字符种类更关键,长度越长越难猜。
UUID 可以用来当密码吗?
不建议。UUID 是随机标识,格式固定、常出现在日志和数据库里,容易被记录和泄露。要当密码,还是用专门的随机密码生成功能更稳妥。