密码统计
统计密码的字符数、UTF-8 字节数、大写、小写、数字、符号、不重复字符和连续重复,并给出香农熵与字符池熵。
在上方输入密码即可分析。不会发送到任何地方。
完全在浏览器中运行,您的数据不会被上传。
什么是 密码统计工具?
此工具把密码分解为数字:以 Unicode 字符计的长度、UTF-8 字节数和 UTF-16 码元数、各字符类别的数量、不重复字符数、出现最频繁的字符、最长的连续重复、香农熵和字符池熵、hashcat 掩码以及十六进制字节。
如何使用 密码统计工具
- 在密码栏中输入或粘贴密码。
- 查看统计网格;所有数值会随你输入实时更新。
- 如果某个系统按字节数限制密码,请查看 UTF-8 字节数。
- 如果需要精确的字节序列,请复制十六进制值。
示例
输入
Tr0ub4dor&3
输出
Length 11, UTF-8 bytes 11, unique 10, uppercase 1, lowercase 6, digits 3, symbols 1, most frequent "r" × 2, pool entropy 72.1 bits
11 个 ASCII 字符,对应 11 个 UTF-8 字节。
何时使用 密码统计工具
需要精确计数时使用,例如检查字节限制(bcrypt 只使用前 72 个字节),或排查系统为何拒绝某个密码。要判断强度,请使用强度检测器。
密码统计工具 的工作原理
密码按 Unicode 码点遍历。每个字符被归类为大写 A–Z、小写 a–z、数字、ASCII 符号、空格或其他 Unicode。字节数用 TextEncoder(UTF-8)统计。香农熵是对字符频率求 −Σ p·log2(p);字符池熵是 长度 × log2(各类别大小之和)。
常见用例
- 对照 bcrypt 的 72 字节限制检查口令
- 排查对字符计数方式不同的密码规则
- 验证“至少 2 个数字”之类的策略要求
- 检查含有表情符号或带重音字母的密码
常见问题
为什么长度和 UTF-8 字节数不同?
ASCII 之外的字符在 UTF-8 中占 2–4 个字节,例如 é 占 2 个字节,大多数表情符号占 4 个字节。
什么算符号?
32 个可打印的 ASCII 标点字符。其他非 ASCII 字符归为“其他 Unicode”。
UTF-16 计数有什么用?
JavaScript 和 Java 以 UTF-16 码元为单位衡量字符串长度,所以 maxlength 属性和一些 API 使用这个数字。