编码工具

自定义字符集只有 A,为什么密码理论熵为零

极捷工具编辑 · 更新于

用公开固定示例检查字符集去重与理论熵,再按网站规则设置真实生成条件。

打开随机密码生成工具 →

操作步骤

  1. 打开随机密码生成工具,把长度设为 8、数量设为 2,自定义字符集填 AAAA。这些是公开测试条件,不能用于真实账户。入口:https://www.jijie.ink/tool/random-password 。
  2. 点击“生成密码”。结果应为两行 AAAAAAAA;实际字符集为 1 个不同字符,每条理论熵为 0.00 bit。重复填写四个 A 不会增加可选字符。
  3. 改为字符集 01,旧结果应立即消失。重新生成后,每行应为 8 位且只含 0 和 1,理论熵为 8.00 bit;具体字符串可能不同,也可能重复。
  4. 完成测试后选择“字母数字符号”,长度改为 16、数量改为 1,重新生成。按目标网站规则核对允许长度与符号;本工具不保证每种字符类别都至少出现一个。复制后存入可信密码管理器,不同账户单独生成。
  5. 点击“清除结果”,确认字符串消失。用空字符集、空格或中文重新生成应报错,不能静默换回默认集或保留旧结果。

跟着示例试一次

AAAA 去重后只有 A,8 × log₂(1) = 0,只有 AAAAAAAA 一种结果;01 有两个选项,8 × log₂(2) = 8,八位有 256 种可能。这两组都只是核对示例,不应作为真实密码。

公开测试 A:长度 8,数量 2,字符集 AAAA
预期:两行 AAAAAAAA,字符集 1,理论熵 0.00 bit
公开测试 B:长度 8,数量 2,字符集 01
预期:每行仅含 0、1,字符集 2,理论熵 8.00 bit

怎样确认结果正确

先用 A 示例核对固定结果,再检查 01 示例的长度、字符集合与 8.00 bit。随机测试不规定某个输出,也不能用两条字符串不同就证明随机性。实现采用浏览器 crypto.getRandomValues 与拒绝采样,避免字符集大小不能整除 256 时直接取模产生偏差。

常见问题与边界

长度只接受 8–128、数量只接受 1–20 的整数;字符集最多输入 512 个字符,支持不含空格的可见 ASCII,自动去重。中文、空格、换行与空集不支持。加密随机源不可用时停止,不降级到 Math.random。理论熵只描述本工具均匀独立抽样的生成过程,不是已有密码评分,不预测破解时间,不保证账户安全,也不检查泄露或网站规则。批量不保证唯一,不强制类别配额。结果只在当前页面内存,不上传、不自动保存;复制会进入系统剪贴板,清除页面结果不会清除剪贴板。不要分享公开屏幕上的真实密码。API依据:https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues 。