密码生成器
免费在线密码生成器,基于 Web Crypto 安全随机源生成随机强密码、易记口令和数字 PIN。支持强度检测、易混淆字符排除、批量导出。浏览器本地生成,零上传。
免费在线密码生成器,基于 Web Crypto 安全随机源生成随机强密码、易记口令和数字 PIN。支持强度检测、易混淆字符排除、批量导出。浏览器本地生成,零上传。
Math.random() 是通用伪随机数生成器,不是为安全场景设计的,内部状态可能被反推。crypto.getRandomValues() 使用操作系统的密码学安全随机源(CSPRNG),生成的随机数不可预测,适合密码、密钥等安全场景。
不会。所有密码在浏览器本地生成,强度分析、熵值计算和破解时间估算也完全在本地完成。打开开发者工具网络面板可以验证零外网请求。
建议至少 12 位包含大小写字母+数字+符号。16 位随机密码在现代算力下暴力破解需要亿万年。长度每增加一位,搜索空间指数级增长。参考上方破解时间表。
相同长度下随机密码熵值更高。但易记口令(由 4-6 个随机单词组成)的总熵值也足够高(~60bit以上),且更容易记忆,适合需要手动输入的场景。关键是必须是真随机选取的单词,不是自己编造的短语。
这些字符在某些字体下难以区分,容易导致输入错误。如果密码需要人工录入、电话口述或打印分发,建议开启排除选项。如果仅由密码管理器使用,保留所有字符可以获得更高的熵值。
NIST 最新指南(SP 800-63B)不再建议定期更换密码,除非确认密码已泄露。定期强制更换反而会导致用户选择弱密码或写下来。更好的做法是:使用长随机密码+密码管理器+启用双因素认证(2FA)。
熵值衡量密码的不可预测性,单位是 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 方法的核心思想。
**所有密码在浏览器本地生成**,不发送到任何服务器。工具同时提供强度检测:熵值计算、暴力破解时间估算、弱密码模式检测(重复字符、连续数字/字母、常见弱密码匹配),帮助您了解所生成密码的实际安全强度。
| 密码长度 | 熵值(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、一次性验证码 |