密码生成器
Password Generator
按长度、字符集和是否排除易混字符的规则生成随机密码,需要的话可以一次生成很多条。
自己想出来的密码带着你思考时所用语言的形状,而破解规则集利用的正是这种形状。这里改从浏览器的加密级随机源里抽取字符,所以决定强度的只有长度和你选的字符集。
…
熵
130.9位
强度
很强
字符集
94个字符
长度
20个字符
猜出来要多久
平均大约 10^19年——比宇宙存在的时间还长。
一个用未加盐的 MD5 或 SHA-1 存的被盗数据库,用八张新显卡组成的机器来打。该照着做打算的是这个数,因为网站怎么存你的密码,你说了不算。 这个数是密钥空间的一半——130.9位——除以每秒 1,000,000,000,000次。它假设攻击者完全清楚这条密码是怎么造出来的,而且没有别的路可走;一个账号里最薄弱的一环,很少是密码。
这里的每条密码都出自这个标签页里的 crypto.getRandomValues。不发往任何地方,也不写进任何存储,关掉标签页就干净了——没有历史记录要清。它唯一会离开这个页面的去处是剪贴板,而别的程序读得到剪贴板;粘进密码管理器之后,再随便复制点无害的东西盖掉它。
怎么用
先定长度
长度带来的收益比字符种类多。只用小写字母的 16 位,胜过混合所有字符类型的 8 位,而且更好打。
网站有限制时关掉对应的字符类型
有些系统拒绝符号,或者悄悄截断。排除易混字符(0/O、1/l/I)在密码需要从屏幕上读出来再手动输入时很有用。
需要时批量生成
批量初始化账号或设备时可以直接要一整列。每一行都是独立抽取的,不是从上一行推导出来的。
关掉标签页之前先把它放到别处
这里什么都不保存。标签页一关,密码也跟着没了,所以趁它还在屏幕上,把它粘进密码管理器。
常见问题
密码是在服务器上生成的吗?
不是。它来自你浏览器里的 `crypto.getRandomValues`,从不发送、从不记录。断网之后页面照样能用,这是你自己验证这一点最简单的办法。
这里面有用到 `Math.random` 吗?
没有。`Math.random` 快,但可预测到只凭几个样本就能重建它的输出,所以不能用来生成秘密。另外,选字符时对超出范围的字节是丢弃重抽而不是取模,所以字符集里每个字符出现的概率相同。
我该用这个,还是密码短语生成器?
凡是密码管理器会替你输入的,用这个。少数你必须记在脑子里、亲手敲出来的秘密——设备解锁、磁盘密钥、管理器自己的主密码——用密码短语生成器。
可以从这些接进来
ULID 与 NanoID 生成
ULID & NanoID Generator
按指定的字母表和长度生成可排序的 ULID 或短小的 NanoID,并给出碰撞概率。
密码强度检测
Password Strength Meter
估算一个密码要多久才会被破解,并点名是哪些套路让它变弱的。
密码短语生成器
Passphrase Generator
从词表里按 diceware 方式拼出一句密码短语,并给出以比特计的熵。
阅后即焚密语
Self-Destructing Note
在浏览器里把一段内容加密,生成一条一次性链接,别人读过之后内容就销毁。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
密码短语生成器
Passphrase Generator
从词表里按 diceware 方式拼出一句密码短语,并给出以比特计的熵。
密码强度检测
Password Strength Meter
估算一个密码要多久才会被破解,并点名是哪些套路让它变弱的。
随机密钥生成
Random Key Generator
按指定长度生成密码学随机字节,输出十六进制、Base64 或 Base64URL,用作应用的 secret。
阅后即焚密语
Self-Destructing Note
在浏览器里把一段内容加密,生成一条一次性链接,别人读过之后内容就销毁。
可疑链接检查
Suspicious URL Check
在你点开之前先看这条链接长什么样——混淆字符、直接写 IP 的主机、@ 障眼法、层层子域、奇怪端口、短链服务——需要时还能追踪跳转并查域名注册时间;没有信誉库。
音频格式转换
Audio Converter
在 MP3、WAV、FLAC、AAC、OGG、Opus 之间转换,比特率和采样率可设。