在线随机密码生成
在线随机密码生成工具
关于随机密码生成
选长度、勾字符类型,点生成。随机数来自 crypto.getRandomValues,也就是浏览器的加密级随机源,不是 Math.random。
大多数生成器有两个坑,这里都避开了:
- 勾选的类型一定会出现。均匀抽取的生成器在短密码上经常漏类型:6 位密码勾三种类型时,数字一个都没出现的概率相当高
- 可以排除容易看混的字符(o O 0 l I 1),密码要手输或者电话里念给别人时很有用
生成后还会把字符顺序打散,保证出现的那几个不会老在开头。
长度怎么选
在乎的账号 12 位起步,网站允许就 16 或 20。长度比符号数量重要:20 位的字母加数字,强过 8 位塞满符号的。
工具允许的最小长度是 4,那只是因为至少要装下每种勾选类型各一个字符。别真的用 4 位。
适合用在哪些地方
凡是密码管理器帮你记的地方:新注册账号、允许符号的 API key、给客人的 Wi-Fi 密码。如果你需要背下来、或者在电视遥控器上一个字一个字敲,用短语口令更合适——这个工具生成的密码本来就不是给人背的。
常见问题
Math.random 不够用吗?
做随机播放够了,做密码不行,它原则上可预测。这里用的是 crypto.getRandomValues 加拒绝采样,密码生成器该用这个。
为什么要保证每类至少一个?
不保证的话,短密码有时会漏掉你明确勾选的类型。保证之后,最小长度就是勾选的类型数,工具卡的那个下限就是为这个。
要不要排除易混淆字符?
密码要手输或念给别人,就排除。只存在密码管理器里、靠粘贴用的,可以不排,字符池大一点强度略高。
和我密码管理器自带的生成器比呢?
都行,而且管理器自带的集成更好:能提示重复密码、能自动填充。用哪个你实际会用的。