编码与安全指南

密码生成:字母表大小与无偏随机性

估算均匀随机密码的熵,区分长度、随机源与强制字符类别策略。

Nav Tools ·

明确均匀随机模型

从 N 个字符独立均匀抽取 L 次时,组合数为 N 的 L 次方,熵为 L 乘 log2(N)。

此估算不适用于可预测替换的人选短语,样例是公式,不是对真实密码的强度评分。

Uniform alphabet N=64, length L=16:
16 × log2(64) = 96 bits

采用密码学随机源

浏览器生成密码应使用 crypto.getRandomValues 等密码学随机源,不能使用 Math.random。

本站使用密码学随机数与拒绝采样,在选字符时避免直接取模带来的偏差。

字符类别是另一项策略

字母表含数字不保证每个输出都含数字,本站不承诺每个类别至少出现一次。

目标要求强制类别时,应使用经过审查的规则型生成器,同时考虑规则如何改变概率分布。

将结果按凭据管理

随机密码仍需安全存储与交付,熵再高也无法保护已经泄露的值。

演示只使用合成样例,真实凭据放入合适的密码管理器,公开分享过的值应重新生成。

参考资料

← 编码与安全指南