安全密码生成器
生成强随机密码、易记口令短语和 PIN。由浏览器的密码学随机数(Web Crypto)驱动,每个密码都在本地生成,绝不离开此页。
什么样的密码才安全?
密码真正的强度在于它的熵 —— 也就是它所携带的随机比特数。密码越不可预测,攻击者需要尝试的次数就越多。熵由两点决定:可选字符(或单词)的池子有多大,以及你把多少个串在一起。如果取自一个很小的字符集,再花哨的短密码也很弱;而取自较大池子的长密码,即便读起来朴实无华,依然很强。
同样关键的是随机性如何产生。本工具使用 Web Crypto API(crypto.getRandomValues)—— 浏览器内置的密码学安全随机数生成器,并配合拒绝采样来消除取模偏差。这意味着每个字符、每个单词都以真正均匀的概率被选中,而不是 Math.random() 那种可被预测的伪随机。
三种生成方式
- 随机密码 —— 经典做法,混合大小写字母、数字与符号。在相同长度下最强,配合密码管理器使用最理想。
- 易记口令 —— 由随机常用单词拼成的口令短语(即“correct-horse-battery-staple”那套思路)。更好输入、更易记忆,用上四个及以上单词就已经非常强。
- PIN —— 纯数字码,用于门锁、SIM 卡以及只接受数字的设备。
如何使用本工具
- 在顶部选择模式:随机密码、易记口令或 PIN。
- 调节长度并切换字符选项。每次改动设置都会自动重新生成。
- 留意强度条 —— 重要账户建议至少达到 60–80 位熵。
- 点击复制放入剪贴板,或点击重新生成换一个。
常见问题
- 这个密码生成器安全吗?
- 安全。所有运算都使用 Web Crypto API 完全在你的浏览器中进行。密码在本地设备上生成,绝不会通过网络传输,也不会在任何地方记录或保存。你甚至可以断网,它依然能正常工作。
- 它和 Math.random() 有什么区别?
- Math.random() 是为安全而设计的伪随机生成器,其输出可能被预测。本工具使用密码学安全的 crypto.getRandomValues(),并采用拒绝采样,使每个字符都以真正均匀的概率被选中,不存在取模偏差。
- 密码应该设多长?
- 对于有密码管理器保管的账户,16–20 位随机字符(或 4–5 个单词的口令短语)就绰绰有余 —— 熵远超 80 位。对于需要靠记忆手动输入的密码,4 个单词以上的易记口令是既强又实用的选择。
- 什么是口令短语,为什么要用它?
- 口令短语是把若干随机单词拼在一起,例如 “maple-otter-cliff-amber”。由于取自一个很大的词库,四个单词就已带来很强的熵,却比一串随机符号更易读、易输入、易记忆。
- 强度条衡量的是什么?
- 它估算的是以比特计的熵 —— 衡量攻击者平均需要多少次猜测。破解时间按每秒约 100 亿次的离线快速攻击估算;在线服务通常慢得多,因此现实中的安全余量更大。
- 可以重复使用同一个密码吗?
- 千万不要。重复使用意味着一个网站被攻破,所有共用该密码的账户都会沦陷。请为每个服务生成独立密码,并用可信赖的密码管理器保管。