密码生成器

使用浏览器加密接口生成高强度随机密码。可设置长度、字符集、排除形近字符、保证每类字符至少一个,并显示密码熵(比特)。

🌍 全球访问 🔒 隐私优先 ⚡ 即时转换 💯 无限使用
Advertisement

使用浏览器加密接口而不是 Math.random 来生成随机密码,这样得到的口令才适合用在真实账户上。你可以选择长度、包含哪些字符集、是否排除 l、1、I 和 O 这类形近字符,以及是否保证所选每一类字符至少出现一个。

以比特为单位的熵值告诉你这个密码能抵抗多少猜测:低于 60 比特,面对有心的攻击者就很脆弱;80 比特对普通账户已经足够扎实;主密码或 API 密钥则希望达到 100 比特以上。在本地生成意味着密码永远不会经过网络传输,而这正是关键所在。

如何生成高强度密码

1

选择长度与字符集

2

设置形近字符与保证选项

3

复制密码并查看熵值

常见问题

密码应该多长?

凡是重要账户,混合字符集取 16 位就是不错的默认值。长度带来的强度比生僻字符更多,所以如果可以选择,宁可要 20 位普通字符,也不要 12 位带符号的。

熵值代表什么?

它是生成的密码里包含多少比特的随机性,由长度和字符池大小算出。每多一个比特,猜测所需的工作量就翻一倍。

为什么要排除形近字符?

当你要从屏幕上读密码,再在手机上或设备里输入时,l、1、I、O 和 0 这类字符很容易看错。排除它们能大幅降低手动输入出错的概率。

用它安全吗?

这些值来自 crypto.getRandomValues,也就是浏览器的加密随机源,是生成密码的正确选择。生成在本地完成,不会有任何内容被传输出去。

可以只生成一个密码到处复用吗?

不可以。每个服务都要用各自唯一的密码,并把它们保存在密码管理器里——复用同一个密码意味着一次泄露就会连累所有共用它的账户。

生成的密码会被保存在什么地方吗?

不会。不保存、不记录、也不发送;除非你已经复制,否则关掉页面密码就没了。

Advertisement

一览

输入文本
多个文件否
运行位置在你的浏览器中——文件永远不会被上传
离线可用是 — 页面加载完成后
价格免费,无需注册,无水印

安全地处理机密信息

开发者工具处理凭据的频率比人们意识到的更高,而风险不在于算法,而在于数据去了哪里。哈希是单向的,它不是加密——MD5 和 SHA-1 在任何与安全有关的用途上都已被攻破,即使是 SHA-256,用来存储密码也是用错了工具,bcrypt、scrypt 或 Argon2 存在的意义恰恰就是慢。Base64 是一种编码,不是保护:任何人都能解码,所以千万不要把它当作混淆。JWT 任何持有它的人都能读取,因此载荷里绝不能放机密,而解码一个令牌并不验证它的签名——验证需要密钥。本站的一切都在你的浏览器中本地运行,这正是它能够安全处理令牌和密码的原因。

转换在哪里悄悄出错

大多数转换缺陷与语法无关,而与含义有关。一列邮编的 CSV 字段会在表格软件猜它是数字的那一刻丢掉前导零;一个很长的 ID 会超出浮点精度;日期会因为先写日还是先写月而意思大变。JSON 的键是无序的,但数组是有序的,排序键的工具不会改变任何东西,而排序数组的工具会改变数据。Unicode 是另一个陷阱:文本可能以 UTF-8、UTF-16 或带字节顺序标记的形式到来,解码器猜错就会把带重音的字符变成乱码。在信任任何转换之前,抽查第一行和最后一行、任何带前导零的字段,以及任何含有引号、逗号或换行的字段。