密码生成器
免费在线密码生成器,基于 Web Crypto 安全随机源生成随机强密码、易记口令和数字 PIN。支持强度检测、易混淆字符排除、批量导出。浏览器本地生成,零上传。
相关推荐
什么是安全密码生成器?
密码生成器是一种生成随机、不可预测密码的工具。与人工设计密码不同,真正的密码生成器使用**密码学安全随机数生成器(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 方法的核心思想。
**所有密码在浏览器本地生成**,不发送到任何服务器。工具同时提供强度检测:熵值计算、暴力破解时间估算、弱密码模式检测(重复字符、连续数字/字母、常见弱密码匹配),帮助您了解所生成密码的实际安全强度。
适用场景
- 注册新账号时生成随机强密码,查看熵值和破解时间,确保账号安全
- 为团队或测试环境批量生成临时口令,快速分发
- 生成易记口令用于需要人工记忆的 Wi-Fi 密码或设备密码
- 设置设备 PIN、初始化后台账号或重置密码
- 替换弱密码,用随机高强度密码替代容易被猜解的人工密码
使用方法
- 选择密码模式:随机密码、易记口令或数字 PIN
- 设置密码长度、字符集选项(建议 16 位以上),可开启排除易混淆字符
- 查看强度检测结果:熵值、破解时间估算、弱密码检测
- 复制密码或批量导出 TXT 文件用于注册、重置或分发
功能特点
- 安全随机生成:基于浏览器 Web Crypto API(crypto.getRandomValues)密码学安全随机源,生成不可预测的随机密码
- 三种密码模式:支持随机密码、易记口令(单词组合)和数字 PIN 三种模式,覆盖不同安全级别
- 完整强度检测:查看字符池大小、熵值计算、弱密码命中检测、重复/连续字符风险、暴力破解时间估算
- 排除易混淆字符:可排除 0/O/1/l/I 等易混淆字符,适合人工录入、电话口述场景
- 批量生成导出:支持批量生成 5/10/20 个密码,一键下载 TXT,方便团队分发和测试环境初始化
- 本地生成不上传:所有密码在浏览器本地生成,不发送到任何服务器
随机密码 vs 易记口令 vs 数字 PIN:该选哪个?
三种密码模式各有取舍。选错模式要么记不住、要么容易被偷、要么根本用不上场景。根据「谁记住、谁输入、谁存储」来选,能少走很多弯路。
| 模式 | 选它的典型问题 | 安全强度 | 易用性 | 典型用户 |
|---|---|---|---|---|
| 随机密码 | 「我从不手敲,只让密码管理器自动填」 | 高(16位可达 ~104 bit) | 差(记不住,必须配合管理器) | 主力邮箱、银行、社交账号、API Key |
| 易记口令 | 「我要能口述、能手敲、还要够安全」 | 中高(5-6 词 Diceware ≈ 64-77 bit) | 好(人类可读、可发音) | 主密码、Wi-Fi、需要跨设备输入的密码 |
| 数字 PIN | 「只用 0-9,受设备限制」 | 低(6 位仅 ~20 bit,10 位也只 ~33 bit) | 好(数字键盘就能输) | 设备锁屏、银行卡 PIN、一次性验证码 |
最佳实践
生成后立即用密码管理器保存,不要长时间留在屏幕上
新生成的强密码是「全明文」状态,停留在剪贴板、屏幕、浏览器历史里都是风险点。生成 → 立即填入目标网站 → 清理剪贴板,三步之间不要插入别的工作。**绝对不要**把生成的密码截屏保存到相册,更不要写在纸条上再拍照发给别人。本工具的密码只在当前页面存在,刷新或关闭页面后即丢失,所以请先准备好存储位置再点生成。
生成的密码会上传到服务器吗?主密码用「长易记口令」,其他账户用 16-20 位随机密码
分层策略:主密码(解锁密码管理器)必须人类能记且强度足够 → 选 5-6 词 Diceware 易记口令。其他 99% 的网站/服务用 16-20 位随机密码 + 密码管理器自动填充。**千万不要**给每个网站都用易记口令(记不住、容易弱化),也**千万不要**把主密码也用随机密码(你会把它写下来,安全归零)。这是密码管理的核心分层思想。
密码多长才算安全?随机密码和易记口令哪个更安全?只在需要人工录入时排除易混淆字符
排除 0/O/1/l/I 等易混淆字符会显著降低字符池大小(同长度下熵值会减少 5-10 bit),**仅在需要人工录入、电话口述、打印分发时**才建议开启。如果密码只在密码管理器里使用,保留所有可打印字符能获得更高熵值。一个简单的判断方法:「这个密码会不会有一天需要我用手指敲出来?」—— 会就排除,不会就别排除。
为什么要排除易混淆字符(0/O/1/l/I)?批量生成只用于测试/分发场景,不要给生产账号用相同方式
批量生成 5/10/20 个密码的工作流,主要适用于:测试环境初始化、临时账号分发、邀请码生成、API Key 一次性输出。**不要**把批量生成结果中的某一个复用到自己的生产账号上——批量生成的密码通常按相同规则生成,特征明显(字符集、长度、生成器类型),一旦某个账号泄露攻击者能猜到其他批量密码的结构差异。生产账号的密码请单独生成、单独保存。
本地生成不上传新密码必须配合 2FA 才算真正安全
再强的密码在钓鱼、键盘记录器、密码库泄露、运营商内鬼面前都不堪一击。**任何重要账户(邮箱、银行、社交、云盘)必须启用双因素认证(2FA)**,TOTP(Google Authenticator / Authy)> 硬件密钥(YubiKey)> 短信。**避免使用短信 2FA**(SIM 卡交换攻击可绕过)。强密码 + 2FA + 密码管理器三者缺一不可,2FA 是密码泄露后的最后一道保险。
NIST SP 800-63B - 数字身份认证指南已泄露密码先用 HIBP 检查再决定是否重置
怀疑某个密码泄露时(看到新闻说某网站被脱库、收到钓鱼邮件等),不要立即改密——先用 Have I Been Pwned(HIBP)的 Pwned Passwords API 检查这个密码是否真的在泄露库里出现过。HIBP 提供 k-匿名 API,本工具未来可考虑集成;现在你可以手动去 haveibeenpwned.com/Passwords 用 SHA-1 前 5 位查询。如果确认在库里才需要紧急改密,未泄露的不必为「心理安慰」强制改密(NIST 已明确不推荐定期改密)。
Have I Been Pwned - 密码泄露检查常见问题
为什么使用 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(密码学安全伪随机数生成器)
- 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密码、登录密码 |
| 数字PIN | 482917 | 每数字3.3bit | 好 | 设备锁屏、银行卡PIN、一次性验证码 |
Authoritative References
- ReferenceNIST SP 800-63B - Digital Identity Guidelines
- ReferenceOWASP Password Security Cheat Sheet
- ReferenceMDN Web Docs - crypto.getRandomValues()
- ReferenceWikipedia - Password strength
- ReferenceHave I Been Pwned - 密码泄露检查
- 色盲模拟器
- 颜色转换器
- .htaccess 转 Nginx 转换器
- SQL 转换器
- Cookie 解析器
- Cron 表达式工作台
- Cron 表达式验证器
- CSS 格式化
- CSS 压缩
- CSV 转 Excel
- CSV Viewer
- CSV Editor
- 货币转换器
- 差异检查器
- Excel to CSV
- 网站图标生成器
- CSS Formatter
- HTML Formatter
- Markdown Formatter
- XML 格式
- 十六进制转换器
- HTML 格式
- HTML 压缩
- HTML 转 Markdown
- Markdown 转 HTML
- JavaScript 格式化
- JS 压缩
- JSX 格式化工具
- JSX 压缩
- 关键词聚类
- Lorem Ipsum 生成器
- Markdown 表格生成器
- Meta Tag 生成器
- 密码生成器
- 密码强度检测工具
- 二维码/条形码生成器
- 正则表达式测试器
- Slug 生成器
- SQL 生成器
- SQL 格式化工具
- 字数统计
- 时间工具
- TS 格式
- TS 压缩
- TSX 格式化
- TSX 压缩
- Unix 时间戳转换
- UUID 生成器
- YAML 格式化
- 大小写命名风格转换器