Skip to content

随机密码生成器 — 自定义长度、强度与安全性

免费在线随机密码生成器,一键生成高强度安全密码。支持自定义长度、字符类型,批量生成多个密码。所有密码仅在浏览器本地生成,不上传不存储。

无追踪 浏览器中运行 免费
所有密码均在浏览器本地生成,不会传输或存储任何数据。
4 128
已审核密码学安全性和熵值准确性 — Go Tools 工程团队 · 2026年3月22日

什么是随机密码生成器?

随机密码生成器使用不可预测的随机数据来创建加密级安全密码,使每个生成的密码都能抵御暴力破解和字典攻击。与人类自创的密码不同,生成的密码没有任何规律、不含字典词汇、也不含个人信息——而这正是攻击者最常利用的三个弱点。超过 80% 的数据泄露事件与弱密码或被盗密码有关(Verizon DBIR),因此强密码生成是抵御攻击的第一道防线。

正如 NIST SP 800-63B 所述:「记忆密码的长度不得少于 8 个字符……验证方不应强制执行其他组合规则。」

本工具使用浏览器内置的 Web Crypto API(crypto.getRandomValues())生成真正的加密随机数。每个字符都从你选择的字符池中独立随机选取,确保均匀分布和最大熵值。需要唯一标识符?试试我们的 UUID 生成器

这为什么重要?一个使用所有字符类型(大写、小写、数字、符号)的 16 位密码拥有超过 100 位的熵值。以每秒一万亿次猜测的速度,暴力破解需要数十亿年。而人类自己创建的同等长度密码,由于无意识地遵循某些规律,熵值通常远低于此。了解密码熵的工作原理

所有密码生成完全在你的浏览器中进行。密码不会通过网络传输、不会存储在任何服务器上、也不会被记录。你可以通过检查浏览器的网络选项卡来验证——生成密码时没有任何外发请求。如需对生成的密码进行编码传输,可使用我们的 Base64 编解码工具。如需全面了解密码哈希、身份认证以及其他安全基础知识,请阅读我们的 Web 安全最佳实践指南

// Generate a random password in JavaScript
function generatePassword(length, charset) {
  const array = new Uint32Array(length);
  crypto.getRandomValues(array);
  return Array.from(array, v => charset[v % charset.length]).join('');
}

// Example: 16-char password with all types
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*';
generatePassword(16, chars);
// → 'kX#9mP$2vL!nQ7wR' (random each time)

核心功能

加密级安全

使用 Web Crypto API(crypto.getRandomValues())生成真正的随机数——与主流密码管理器和安全工具使用的标准相同。

完全可定制

控制密码长度(4–128 个字符)、字符类型(大写、小写、数字、符号),并可排除易混淆字符——满足任何密码要求。

批量生成

一次生成多达 50 个唯一密码。每个密码都使用完整的加密随机性独立生成。

强度分析

实时查看每个密码的熵值(以位为单位)和预估暴力破解时间,清楚了解密码强度。

100% 浏览器端处理

所有密码均在浏览器本地生成。不向任何服务器发送数据——你的密码完全私密。

示例

高安全性(32 位)

kX#9mP$2vL!nQ7wR&bZ4fG@8sY^5jD*3

适用于敏感账户——32 个字符包含大小写、数字和符号,约 200 位熵值,暴力破解需数十亿年。

标准(16 位)

Tm$8kR!pN3vZ@5qW

大多数账户的推荐默认值——16 个字符包含所有类型,约 105 位熵值。适用于银行、邮箱等重要账户。

易读(12 位,无混淆字符)

kRm4nTp7sWx2

易于阅读和输入——排除 0/O、l/1 等易混淆字符,无符号。适合 Wi-Fi 密钥、临时密码或需要手动输入的场景。

批量生成(5 个密码)

Hx$4mR!pN3vZ@5qWtB2j
Yk#7wL&8sF^9gQ*2dXnR
Pr@6bT$3cN!5hJ^8mKvZ
Wq*9fG#2nS!7yD@4xLpM
Zv&3kR$8tH!6jB@5wNcQ

一次最多生成 50 个唯一密码——每个都独立随机。非常适合批量创建账户或团队凭据配置。

使用方法

  1. 1

    配置密码参数

    使用长度滑块(4–128 个字符,默认 16)选择密码长度,并勾选要包含的字符类型:大写字母、小写字母、数字和特殊符号。可选择排除易混淆字符(如 0 和 O、l 和 1)。

  2. 2

    生成密码

    点击「生成密码」按钮。可一次生成 1 到 50 个密码。每个密码都使用浏览器的加密随机数生成器创建,确保最高安全性。

  3. 3

    查看强度评估

    查看每个密码下方的强度指示器。它显示密码的熵值(以位为单位)和预估暴力破解时间,让你清楚了解密码的安全程度。

  4. 4

    复制使用

    点击密码旁边的「复制」按钮将密码复制到剪贴板。批量生成时可使用「复制全部」一次复制所有密码。

常见使用场景

账户注册
每次注册新网站或应用时创建唯一的强密码。避免在多个账户间重复使用密码。
密码管理器填充
生成高熵值密码存储到密码管理器中。为所有账户从一开始就使用最强的密码。
企业与 IT 安全
为数据库、服务器、API 密钥和服务账户生成符合企业安全策略的安全密码。
开发与测试
快速生成开发环境、模拟用户账户和自动化测试场景所需的测试密码。
Wi-Fi 与网络安全
为无线网络创建强大的 WPA2/WPA3 密钥。20 个字符以上的随机密码使暴力破解变得不切实际。

技术细节

Web Crypto API
使用 crypto.getRandomValues() 配合 Uint32Array 进行加密安全的随机数生成。此 API 在所有现代浏览器中可用,使用操作系统的 CSPRNG(加密安全伪随机数生成器)。
熵值计算
熵值 = log₂(字符池大小) × 密码长度。字符池大小:小写字母(26)、大写字母(26)、数字(10)、符号(32)。四种类型全部启用:字符池 = 94 个字符,每个字符约 6.55 位。16 位密码约 104.9 位熵值。
破解时间估算
暴力破解时间估算假设每秒 10¹²(1 万亿)次猜测,这代表了高端专用破解设备的能力。公式:时间 = 2^熵值 / 每秒猜测次数。以人类可读的单位显示(从秒到数十亿年)。

最佳实践

每个账户使用唯一密码
切勿在不同网站间重复使用密码。如果一个网站发生数据泄露,重复使用的密码会让攻击者获得你所有其他账户的访问权限。使用本生成器为每个账户创建唯一密码,并存储在密码管理器中。
至少使用 16 个字符
更长的密码破解难度呈指数级增长。包含所有字符类型的 16 位密码需要数十亿年才能暴力破解。对于高安全性账户,建议使用 20–32 个字符。
启用所有字符类型
使用大写字母、小写字母、数字和符号可以最大化字符池和每个字符的熵值。仅在网站的密码规则要求时才禁用某些字符类型。
使用密码管理器
你无法记住数十个唯一的随机密码。使用密码管理器(如 Bitwarden、1Password、KeePass)安全存储它们。这样你只需要记住一个强主密码。

常见问题

在线密码生成器安全吗?
安全。本工具的所有密码生成过程完全在你的浏览器中通过 JavaScript 和 Web Crypto API 完成,没有任何数据会发送到服务器。你可以自行验证:打开浏览器开发者工具(F12 → 网络选项卡),在生成密码时观察——外发请求为零。由于密码从未离开你的设备,不存在被截获或服务器泄露的风险。这与 Bitwarden、1Password 等知名密码管理器采用的本地生成方式相同。我们所有工具(包括 UUID 生成器Base64 编解码)都 100% 在浏览器中运行。
什么样的密码才算强密码?
强密码的三个核心要素是:足够长、完全随机、每个账户唯一。长度比复杂度更重要——一个 16 位密码比 8 位密码的破解难度高出数十亿倍。在此基础上,混合使用大小写字母、数字和符号可以进一步提高安全性。要避免使用字典词汇、姓名、生日和键盘规律(如 qwerty)。最关键的是,绝不要在多个账户间重复使用密码。使用随机密码生成器可以彻底消除人为偏差。
密码应该设置多长?
2026 年的建议是:密码最低长度为 12 个字符,但 16 个字符是大多数账户的理想选择。对于银行、主邮箱、云管理等高安全性账户,建议使用 20 到 32 个字符。包含所有字符类型的 16 位密码约有 105 位熵值,以每秒一万亿次的猜测速度暴力破解需要数十亿年。每多一个字符都会使可能的组合数成倍增加,所以越长越安全。
8 位密码够安全吗?
不够。即使混合了大小写字母、数字和符号,8 位密码的熵值也只有约 52 位,现代硬件可以在数小时到数天内破解。相比之下,12 位密码需要数个世纪,16 位密码需要数十亿年。安全专家和 NIST(美国国家标准与技术研究院)建议密码最少 12 个字符。我们推荐日常账户使用 16 个字符,敏感账户使用 20 个字符以上。
随机密码和密码短语(passphrase),哪个更安全?
两者都可以非常安全,但各有优势。随机密码(如 kX#9mP$2vL!nQ7wR)在更少的字符中包含最大熵值,适合有长度限制的场景。密码短语(如「正确-马匹-电池-订书针」)更容易记忆和输入,但需要更长(4 到 6 个随机词)才能达到同等强度。存储在密码管理器中的账户,随机密码是最佳选择,因为无需记忆。而密码管理器的主密码,使用长密码短语通常更实用。
密码中应该包含特殊符号吗?
建议包含。添加 !@#$%^&* 等特殊符号会将字符池从 62(字母加数字)扩大到 90 多个字符,显著提升熵值。包含符号的 16 位密码有约 105 位熵值,而不含符号只有约 95 位。如果某个网站限制了特殊字符的使用,可以将密码长度增加 2 到 4 个字符来弥补字符池缩小带来的影响。
随机生成的密码怎么记住?
简短的回答是:不要试图记住它们。请使用密码管理器(如 Bitwarden、1Password 或 KeePass)来安全存储所有密码。你只需记住一个强主密码或密码短语来解锁密码库。密码管理器可以在网站和应用中自动填充登录信息,完全不需要手动输入随机密码。这种方式让你能为每个账户使用唯一的复杂密码,同时没有任何记忆负担。
为什么不应该所有账户用同一个密码?
密码重复使用是最大的网络安全风险之一。当某家公司发生数据泄露时——这种事每天都在发生——攻击者会拿着泄露的账号密码去尝试登录其他服务,这种攻击叫做「撞库攻击」(credential stuffing)。之所以有效,是因为大多数人在多个网站使用相同的密码。一旦你的密码被泄露,所有使用该密码的账户都会暴露。为每个账户使用唯一的随机密码,可以确保单次泄露不会波及其他账户。
密码应该多久更换一次?
根据 NIST(美国国家标准与技术研究院)最新指南(SP 800-63B),如果密码足够强且唯一,不需要定期更换。强制定期更改反而会导致更弱的密码,因为人们倾向于只做最小的、可预测的修改。正确的做法是:当怀疑密码已泄露、收到服务方的数据泄露通知、或曾与他人分享过密码时,立即更换。最佳策略是使用强随机密码配合密码管理器,只在有具体理由时才更换。
什么是「易混淆字符」?为什么要排除它们?
易混淆字符是视觉上容易混淆的字符对:0(零)与 O(字母 O)、l(小写 L)与 1(数字 1)、I(大写 i)与 l(小写 L)。排除这些字符可以使密码更容易阅读、输入和口头传达,减少出错机会。在需要将临时密码分享给他人或在手机上手动输入密码时特别有用。字符池的轻微减少对安全性的影响可以忽略不计——不含易混淆字符的 16 位密码仍然有约 97 位熵值。
2026 年密码应该设置多长——12 个字符还够吗?
2026 年,12 个字符是绝对最低要求,但大多数账户推荐默认使用 16 个字符。NIST SP 800-63B(2024 年更新)将 8 个字符设为下限,但安全从业者普遍建议 16 个字符以上。原因在于:GPU 加速的破解设备现在可以在不到一天内穷举所有仅使用大小写字母的 12 位密码。使用所有字符类型(94 个字符)的 12 位密码约有 79 位熵值——勉强够用但不宽裕。包含所有类型的 16 位密码达到约 105 位,以每秒万亿次猜测的速度破解需要数十亿年。对于高价值账户(银行、邮件、云管理),使用 20-32 个字符。密码长度必须与唯一性配合——唯一的 12 位密码胜过重复使用的 32 位密码。
我需要为 SaaS 产品生成 API 密钥——应该使用密码生成器还是其他方案?
密码生成器可以用于 API 密钥生成,但不是最理想的工具。API 密钥需要特定属性:高熵值(256 位以上)、URL 安全字符(不含 + 或 /)、固定可识别的格式,通常还需要便于识别的前缀(如 sk_live_ 或 ghp_)。最佳做法是生成 32 字节的加密随机数据并编码为 Base64URL 或十六进制,可在紧凑字符串中提供 256 位熵值。Node.js 中:crypto.randomBytes(32).toString('base64url');Python 中:secrets.token_urlsafe(32)。如果使用本密码生成器,设置长度为 43 个以上字符,并仅使用字母数字字符(避免需要 URL 编码的符号)。始终为 API 密钥加上产品名称前缀,方便用户在 .env 文件和密钥管理器中识别。
公司要求密码必须包含大写字母、小写字母、数字和符号——但我听说 NIST 认为这没必要。谁说得对?
两种观点都有道理,但针对的是不同的问题。NIST SP 800-63B(2024 年)不鼓励强制组合规则(如「必须包含大写字母、小写字母、数字、符号」),因为这会导致可预测的规律(Password1! 技术上合规但实际上很弱),并使密码更难记,导致人们重复使用密码。NIST 建议专注于密码长度,并对照已泄露密码列表进行检查。然而,当你使用随机密码生成器并将密码存储在密码管理器中时,组合要求完全无关紧要——生成器会以最优方式选择所有字符类型。NIST 指南针对人工选择的密码,而非机器生成的密码。对于密码管理器中存储的生成密码,使用所有字符类型在严格意义上仍然更好,因为每个字符的熵值更高。结论:贵公司的策略对于人工密码而言欠佳,但对于机器生成的密码来说没有问题。

JWT 解码器 · 在线解码工具

安全工具

免费 JWT 解码器,在线即时解码 JWT 令牌。查看头部、载荷、签名以及过期时间、算法和声明详情。100% 浏览器本地运行——令牌绝不离开你的设备。无需注册、无跟踪。

在线 MD5 哈希生成器与文件校验工具

安全工具

在线生成 MD5、SHA-256、SHA-1、SHA-512 哈希值 — 完全免费,浏览器本地运算,无需注册。支持文本和文件哈希、校验和验证、哈希值对比,一键复制,数据绝不离开你的设备。

UUID 生成器与解析器 — v1, v4, v5, v7 批量生成

安全工具

免费 UUID 生成器,支持 v1/v4/v5/v7 全版本即时生成。解析验证任意 UUID,批量生成最多 50 个。无需注册,100% 浏览器本地运行。

进制转换器 — 二进制、十六进制、十进制、八进制互转

转换工具

在线免费进制转换工具,支持二进制、八进制、十进制、十六进制及 2-36 任意进制互转。无需注册,数据不离开浏览器,即时获取结果。

Base64 解码与编码工具

编码和格式化

免费在线 Base64 解码编码工具。实时转换,支持中文和 Emoji,100% 浏览器端运行,数据不离开设备,无需注册。

在线压缩 JPEG、PNG、WebP 图片 — 免费批量处理

转换工具

免费在线压缩 JPEG、PNG、WebP 图片,体积缩小高达 80%。浏览器本地处理、图片不上传服务器。支持批量压缩 20 张、质量调节、前后对比预览。无需注册。