logo
GeekFormat

密码生成器

0
密码长度
16chars
64
包含字符集
批量生成

免费在线密码生成器,基于 Web Crypto 安全随机源生成随机强密码、易记口令和数字 PIN。支持强度检测、易混淆字符排除、批量导出。浏览器本地生成,零上传。

相关推荐

适用场景

  • 注册新账号时生成随机强密码,查看熵值和破解时间,确保账号安全
  • 为团队或测试环境批量生成临时口令,快速分发
  • 生成易记口令用于需要人工记忆的 Wi-Fi 密码或设备密码
  • 设置设备 PIN、初始化后台账号或重置密码
  • 替换弱密码,用随机高强度密码替代容易被猜解的人工密码

功能特点

  • 安全随机生成:基于浏览器 Web Crypto API(crypto.getRandomValues)密码学安全随机源,生成不可预测的随机密码
  • 三种密码模式:支持随机密码、易记口令(单词组合)和数字 PIN 三种模式,覆盖不同安全级别
  • 完整强度检测:查看字符池大小、熵值计算、弱密码命中检测、重复/连续字符风险、暴力破解时间估算
  • 排除易混淆字符:可排除 0/O/1/l/I 等易混淆字符,适合人工录入、电话口述场景
  • 批量生成导出:支持批量生成 5/10/20 个密码,一键下载 TXT,方便团队分发和测试环境初始化
  • 本地生成不上传:所有密码在浏览器本地生成,不发送到任何服务器

使用方法

  1. 选择密码模式:随机密码、易记口令或数字 PIN
  2. 设置密码长度、字符集选项(建议 16 位以上),可开启排除易混淆字符
  3. 查看强度检测结果:熵值、破解时间估算、弱密码检测
  4. 复制密码或批量导出 TXT 文件用于注册、重置或分发

常见问题

为什么使用 Web Crypto API 而不是 Math.random()?

Math.random() 是通用伪随机数生成器,不是为安全场景设计的,内部状态可能被反推。crypto.getRandomValues() 使用操作系统的密码学安全随机源(CSPRNG),生成的随机数不可预测,适合密码、密钥等安全场景。

生成的密码会上传到服务器吗?

不会。所有密码在浏览器本地生成,强度分析、熵值计算和破解时间估算也完全在本地完成。打开开发者工具网络面板可以验证零外网请求。

密码多长才算安全?

建议至少 12 位包含大小写字母+数字+符号。16 位随机密码在现代算力下暴力破解需要亿万年。长度每增加一位,搜索空间指数级增长。参考上方破解时间表。

随机密码和易记口令哪个更安全?

相同长度下随机密码熵值更高。但易记口令(由 4-6 个随机单词组成)的总熵值也足够高(~60bit以上),且更容易记忆,适合需要手动输入的场景。关键是必须是真随机选取的单词,不是自己编造的短语。

为什么要排除易混淆字符(0/O/1/l/I)?

这些字符在某些字体下难以区分,容易导致输入错误。如果密码需要人工录入、电话口述或打印分发,建议开启排除选项。如果仅由密码管理器使用,保留所有字符可以获得更高的熵值。

定期更换密码更安全吗?

NIST 最新指南(SP 800-63B)不再建议定期更换密码,除非确认密码已泄露。定期强制更换反而会导致用户选择弱密码或写下来。更好的做法是:使用长随机密码+密码管理器+启用双因素认证(2FA)。

什么是密码熵值(Entropy)?

熵值衡量密码的不可预测性,单位是 bit。熵值 = log₂(字符池大小^密码长度)。例如 16 位密码从 94 个可打印 ASCII 字符中随机选取,熵值为 log₂(94¹⁶) ≈ 104 bit。熵值越高,暴力破解越难。

什么是安全密码生成器?

密码生成器是一种生成随机、不可预测密码的工具。与人工设计密码不同,真正的密码生成器使用**密码学安全随机数生成器(CSPRNG)**从指定字符池中随机抽取字符,避免人类设密时固有的可预测模式(名字+生日、键盘连续按键如 qwerty、公司名+年份等),从而显著降低被撞库、字典攻击和暴力破解的风险。

**为什么不能用 Math.random()**:普通伪随机数生成器的内部状态可以从少量输出中被反推,攻击者可能预测后续生成的「随机」数。本工具使用浏览器 Web Crypto API 的 crypto.getRandomValues(),底层调用操作系统级别的 CSPRNG(如 Linux 的 getrandom、macOS 的 SecRandomCopyBytes、Windows 的 BCryptGenRandom),生成的随机数通过密码学随机性测试,不可预测。

**密码强度的核心是熵值(Entropy)**:熵值 = log₂(字符池大小^密码长度),单位是 bit。例如从 94 个可打印 ASCII 字符中随机选取 16 位密码,熵值约为 104 bit,意味着攻击者平均需要尝试 2¹⁰³ 次才能找到正确密码——即使每秒试 1 万亿次,也需要约 2000 亿年。

**易记口令(Passphrase)**:由多个随机选择的单词组成(如 Brave-Cloud-Star42),虽然看起来比随机密码「简单」,但如果单词是真随机选取的,总熵值可以达到 60 bit 以上,对大多数场景已经足够安全,且比等强度随机密码容易记忆得多。这也是 XKCD #936 经典漫画和 Diceware 方法的核心思想。

**所有密码在浏览器本地生成**,不发送到任何服务器。工具同时提供强度检测:熵值计算、暴力破解时间估算、弱密码模式检测(重复字符、连续数字/字母、常见弱密码匹配),帮助您了解所生成密码的实际安全强度。

术语表

CSPRNG(密码学安全伪随机数生成器)
Cryptographically Secure Pseudo-Random Number Generator,通过严格密码学随机性测试的随机数生成器。输出不可预测,即使攻击者已知大量历史输出也无法推断后续输出。浏览器 Web Crypto API 底层即使用 CSPRNG。
密码熵值(Password Entropy)
衡量密码不可预测性的指标,单位为 bit。计算公式:熵值 = log₂(N^L),其中 N 是字符池大小,L 是密码长度。熵值越高,暴力破解越困难。一般 60 bit 以上为安全,100 bit 以上为极强。
暴力破解(Brute Force Attack)
尝试所有可能的字符组合来猜解密码的攻击方式。防御方法是使用足够长的随机密码,使组合数大到在物理上不可枚举。
字典攻击(Dictionary Attack)
使用常见密码列表(如 123456、password、qwerty 等)进行猜解的攻击方式。比暴力破解高效得多,因为绝大多数用户使用常见弱密码。随机生成的密码天然免疫字典攻击。
撞库攻击(Credential Stuffing)
利用从一个网站泄露的用户名密码去尝试登录其他网站。防御方法是每个网站使用唯一密码,并通过 Have I Been Pwned 检查密码是否已泄露。
易记口令(Passphrase)
由多个随机单词组成的密码/口令。相比随机字符密码,单词口令更容易记忆,在单词数足够多时熵值同样很高。Diceware 是最著名的易记口令生成方法,使用骰子从 7772 个单词列表中随机选取。
Diceware
Arnold Reinhold 于 1995 年发明的口令生成方法,使用 5 个骰子确定一个单词(从 7776 个单词列表中选取)。6 个 Diceware 单词的熵值约为 77 bit,安全性足够抵御暴力破解。
NIST SP 800-63B
美国国家标准与技术研究院发布的数字身份认证指南,是密码安全领域最权威的参考。2017 年更新后不再建议定期更换密码、不再强制要求特殊字符,转而强调密码长度、黑名单检测和多因素认证。
双因素认证(2FA/MFA)
在密码之外要求第二种身份验证方式(如手机验证码、TOTP、硬件密钥),即使密码泄露也能保护账号安全。NIST 推荐所有重要账户启用 2FA。
弱密码黑名单
已被公开泄露、极其常见或包含可预测模式的密码列表。如 123456、password、admin、qwerty 等。NIST 建议注册和修改密码时检查是否在黑名单中。

密码长度与破解时间估算(含大小写+数字+符号)

密码长度熵值(bit)组合数暴力破解时间(1万亿次/秒)安全评级
6位~37约 1390亿< 1秒❌ 极弱
8位~52约 2.2×10¹⁴约 2.5天❌ 弱
10位~65约 3.7×10¹⁸约 116年⚠️ 一般
12位~78约 6.1×10²²约 193万年✅ 强
16位~104约 6.3×10³⁰约 2000亿年✅✅ 极强
20位~131约 6.7×10³⁸宇宙年龄的亿亿倍✅✅✅ 无懈可击

三种密码模式对比

模式格式示例典型熵值可记忆性推荐场景
随机密码xK9#mP2$vL8@nQ4!每字符~6.5bit密码管理器存储的主密码、数据库密码、API密钥
易记口令Brave-Cloud-Star42每单词~10bit需要人工记忆的Wi-Fi密码、登录密码
数字PIN482917每数字3.3bit设备锁屏、银行卡PIN、一次性验证码

Authoritative References