编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 开发生成 / 随机密码生成

随机密码生成

生成高强度随机密码。

结果

这个工具能做什么

随机密码生成器解决的是一个很具体的问题:你需要一串没有规律、无法被猜测的字符当密码,而人脑临时想出来的所谓强密码往往并不随机。这个密码生成器让你先定长度(比如 12、16 或 24 位),再勾选要包含的字符类型——大写字母、小写字母、数字、符号,然后一次性生成一条或多条随机密码。默认会排除 0O1lI 这类肉眼容易混淆的字符,方便手抄或口头念给同事时不出错。整个在线生成密码的过程在浏览器本地完成,不上传到任何服务器。

强密码生成的关键不在字符花样,而在随机源的质量。靠谱的做法不会用 Math.random 这类伪随机数(PRNG),因为它的种子可预测、输出可被逆推,而是调用浏览器的 crypto.getRandomValues,也就是操作系统提供的密码学安全随机数(CSPRNG)。把随机字节映射到选定字符集时还要处理取模偏差:如果直接对字符集长度取余,靠前的字符会略微更常出现,规范做法是丢弃落在非整除区间的字节后重新采样。密码的抗暴力破解能力可以用熵(bit)衡量,约等于长度乘以 log2(字符集大小),一条 16 位、涵盖四类字符(约 90 个可选字符)的随机密码大约有 100 多 bit 熵,远超绝大多数人工口令。

最常见的用法是给新注册账号、数据库、服务器 SSH 或 API 密钥生成一条一次性的随机密码。比如初始化一台服务器时要给 MySQL 的 root 设一个 24 位、含符号的强密码,生成后直接粘进配置再存进密码管理器即可,不必自己费劲拼。批量生成适合一次要开十几个测试账号、或给一批设备预置初始口令的场景:把条数调到 20,一次拿到 20 条互不相同的随机密码,导出后逐一分配。这样既保证每条都随机,又省去重复点击生成的麻烦。

有两点容易被误解。一是长度比字符种类更能提升强度:一个只含大小写和数字、但有 20 位的密码,通常比 8 位混入符号的密码更难破解,别为了凑符号而牺牲长度。二是排除混淆字符会略微缩小字符集、降低单位长度的熵,这是可读性和强度之间的权衡;如果密码纯给机器使用、不需要人工抄写,把长度适当加长就能补足这点差距。另外,生成的随机密码本身不会被工具记住,刷新页面即消失,真正要长期使用的密码请及时存进密码管理器,而不是靠浏览器历史或截图。

随机密码生成是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“随机密码生成”、“密码生成器”、“随机密码”,说的都是这个。

常见使用场景

使用方法

  1. 把内容粘贴到输入框(生成类工具直接设置选项)。
  2. 按需要选择选项,点操作按钮。
  3. 结果出现在下方,点「复制结果」即可带走。

常见问题

生成的随机密码安全吗?会不会被记录或上传?
密码在浏览器本地通过 crypto.getRandomValues 生成,不上传服务器,工具也不保存历史,刷新页面即清空。整体安全性还取决于你当前设备和网络环境是否可信。
密码长度和字符类型该怎么选?
优先保证长度,一般账号 12-16 位、重要系统建议 20 位以上;字符类型至少勾选大小写字母和数字,符号则看目标系统是否允许。长度对强度的贡献通常大于多加一种字符。
为什么默认不包含 0、O、1、l、I 这些字符?
这几个字符在很多字体里几乎长得一样,人工抄写或口头传达时极易看错,默认排除是为了减少输错。代价是字符集略微变小,对纯机器使用的场景影响可以靠加长弥补。
它和 UUID、随机字符串生成器有什么区别?
UUID 是固定格式(36 位、带连字符)的标识符,目的是保证唯一性而非保密。本工具面向密码,长度和字符集都可控,更强调抗猜测的熵,不适合直接当作数据库主键。
生成的密码有些系统不接受,怎么办?
多半是符号超出了该系统允许的白名单,或长度超过上限。可以只勾选大小写和数字、或去掉符号重新生成,再按目标系统的具体规则调整长度即可。

相关工具

查看全部「开发生成」工具 →

相关名词解释