随机密码制作方法

46 0

随机密码是按设定的长度和字符集,由密码学安全的随机数逐位抽取字符得到的口令。下面说明实现方法和步骤。

随机密码制作方法

生成器先确定字符集(例如 62 个大小写字母和数字),再从安全随机源取得随机整数,把它映射为字符集中的一个下标,重复到指定长度。为了避免“取模偏差”,规范的实现会丢弃落在不能整除范围内的随机数再重取,这样每个字符被选中的概率完全相同。

  1. 确定长度:普通账号 12–16 位,重要账号 16 位以上
  2. 勾选字符类型:大写、小写、数字,网站允许时加上符号
  3. 按需排除易混字符,如 0/O、1/l/I
  4. 点击生成,确认结果满足网站的规则要求
  5. 立即保存到密码管理器,不要截图发在聊天里

示例

输入:长度 8,字符集:大小写字母+数字+符号(86 个字符)

生成结果:示例:jYRwc8p@;熵约 51.4 位,组合数约 86^8 ≈ 2.99×10^15

说明:熵 = 8 × log2(86) ≈ 51.4 位;示例仅用于说明格式,请勿直接作为自己的密码。

规则说明

  • 长度不少于 12 位,越长越好
  • 不包含用户名、手机号、生日等个人信息
  • 不同网站绝不重复使用
  • 部分网站限制可用符号,生成前先查看规则
  • 不要只靠把字母替换成形近数字(如 a→@)来“加强”

计算方法

密码熵的计算公式是 H = L × log2(N),L 是长度,N 是字符集大小。例如 16 位、62 个字符的密码,H = 16 × 5.954 ≈ 95.3 位;组合数为 62^16 ≈ 4.77×10^28。一般认为 80 位以上的熵已能抵抗离线暴力破解。

JavaScript 示例

下面是用 JavaScript 实现的写法,可以按需要修改:

function genPassword(len, chars) {
  const out = [];
  const max = 256 - (256 % chars.length); // 去除取模偏差
  const buf = new Uint8Array(1);
  while (out.length < len) {
    crypto.getRandomValues(buf);
    if (buf[0] < max) out.push(chars[buf[0] % chars.length]);
  }
  return out.join('');
}

本站的密码生成器工具可以直接在网页中使用,无需安装,适合快速得到和核对结果。

常见问题

【16 位随机密码安全吗?】大小写字母加数字的 16 位随机密码约 95 位熵,在当前算力下暴力破解不可行,前提是不重复使用。

【多长时间换一次密码?】没有泄露迹象时不必定期更换;一旦网站发生泄露或发现异常登录,就立即更换。

【随机密码记不住怎么办?】交给密码管理器保存,只需记住一个足够长的主密码。

文中示例可以在本站对应工具中核对。生成和保存密码等敏感信息时,请注意保护隐私。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: 密码 密码生成

抱歉,评论功能暂时关闭!