密码生成器

安全

介绍

Toollect 密码生成器是一个基于浏览器的安全工具,能建立强、密码学安全的随机密码与词组密码。它服务任何需要安全凭证的人——从管理多个在线帐户的一般用户,到需要审计级密码生成的安全意识专业人士。

弱密码仍然是帐户被入侵的主要原因。Toollect 密码生成器使用 Web Crypto API 的密码学安全随机数生成器,消除了密码创建中的人为偏见。每个密码都来自真正的熵值,而非可预测的算法或人类模式。

与基于服务器的密码工具不同——那些会将你的潜在凭证通过网络传输——Toollect 密码生成器完全在你的浏览器中运作。没有数据会传送到任何服务器、存储在任何数据库或记录在任何会话中。这种隐私优先的方法确保你生成的密码只有你知道。

工作原理

密码生成器以两种不同的模式运作,每种都由密码学安全的随机数生成驱动。

随机模式

在随机模式中,生成器从你选择的字符集中逐字符建立密码:

  1. 字符选择池:生成器合并你选定的字符集——大写字母(A-Z)、小写字母(a-z)、数字(0-9)和符号(!@#$%^&*)。你还可以启用「排除模糊字符」选项,移除容易混淆的字符(i、l、1、L、o、0、O)。

  2. 保证覆盖:生成器确保每个选定的字符集至少有一个字符出现在最终密码中。这可以防止当你同时选择大写、小写和数字时出现类似「AAAAAAAA12」的密码——即使是随机选择也必须包含每种类型。

  3. 密码学随机性:每个字符使用 crypto.getRandomValues() 选定,该方法从操作系统的熵源中提取。这与 TLS/SSL 和磁盘加密系统使用的来源相同。

  4. Fisher-Yates 洗牌:组装后,密码经过无偏的 Fisher-Yates 洗牌以随机化字符顺序,消除保证覆盖步骤带来的任何位置偏差。

词组模式

词组模式使用精心策划的单词列表而非单个字符:

  1. 单词列表:内置列表是 EFF 短单词列表 #1(1296 个简短、常见的英文单词)。每个单词贡献约 10.3 位的熵值(log2(1296))。

  2. 自定义单词:你可以在自定义单词字段中提供自己的单词。生成器使用你的单词而非默认列表,让你能用任何语言创建词组密码。

  3. 组装:生成器随机选取指定数量的单词,可选择将每个单词首字母大写,用你选择的分隔符连接,并根据配置附加随机数字和/或符号。

强度计算

密码强度以熵值的位数衡量:

  • 随机密码:熵值 = 长度 × log2(字符集大小)
  • 词组密码:熵值 = 单词数 × log2(单词列表大小)

强度指示器将熵值范围映射到描述性标签:弱(0-29 位)、普通(30-49 位)、良好(50-69 位)、强(70-99 位)、非常强(100+ 位)。

使用方法

使用 Toollect 密码生成器无需设置或注册。请按以下步骤操作:

  1. 选择模式 — 使用顶部的标签选择随机或词组模式。

  2. 随机模式设置

    • 调整长度滑块(8-128 个字符)
    • 勾选或取消勾选字符集:大写字母、小写字母、数字、符号
    • 可选启用「排除模糊字符」以移除容易混淆的字符
  3. 词组模式设置

    • 调整单词数滑块(3-12 个单词)
    • 选择单词分隔符(空格、连字符、下划线、点号或无)
    • 可选启用「每个单词首字母大写」、「加入随机数字」或「加入随机符号」
    • 可选在文本区域中输入自定义单词以替换默认单词列表
  4. 生成 — 单击生成按钮。密码或词组出现在输出区域。

  5. 检查强度 — 查看强度指示器以评估安全等级。

  6. 复制密码 — 单击复制将密码复制到剪贴板,然后粘贴到你的帐户注册或密码管理器中。

  7. 清除重新开始 — 单击清除重置输出并重新开始。

教程

本教程演示两个完整的工作流程——为社交媒体帐户创建随机密码,以及为电子邮件创建词组密码。

场景 1:为社交媒体帐户创建随机密码

  1. 打开密码生成器。工具默认在随机模式打开。
  2. 将长度设为 16。当前数值显示在长度标签旁。
  3. 确保以下复选框已勾选:A-Z(大写)、a-z(小写)、0-9(数字)。将符号保持不勾选——许多社交媒体平台接受字母数字密码。
  4. 勾选「排除模糊字符」以防混淆外观相似的字符,如 1(数字一)和 l(小写 L)。
  5. 单击生成。一个 16 字符的密码出现在输出区域。强度指示器应显示「强」或「非常强」。
  6. 单击复制将密码复制到剪贴板,然后粘贴到社交媒体的密码字段中。
  7. 完成后单击清除重置。

场景 2:为电子邮件创建词组密码

  1. 单击词组标签切换到词组模式。
  2. 将单词数设为 5。来自 EFF 单词列表的 5 单词词组密码提供约 51 位的熵值。
  3. 选择「空格」作为单词分隔符,以获得经典的 xkcd 风格词组密码格式。
  4. 勾选「每个单词首字大写」和「加入随机数字」。将「加入随机符号」保持不勾选——大多数电子邮件服务接受带空格的字母数字密码。
  5. 单击生成。类似「Plank Lunch Quilt Ivory Sunset7」的词组会出现。
  6. 查看强度——5 个单词至少应显示「强」。
  7. 单击复制并将词组用于你的电子邮件帐户。空格和大写使其在桌面和移动设备上都更容易正确输入。

专业技巧

  • 为主密码使用词组:你的密码管理器主密码是最重要的凭证。使用词组模式和 6-7 个单词创建既安全又好记的主密码。
  • 根据帐户敏感度匹配密码长度:低风险(论坛注册、通讯)使用 8-12 字符,标准(社交媒体、购物)使用 14-20 字符,高价值(电子邮件、银行、密码管理器)使用 24+ 字符。
  • 为 Wi-Fi 密码组合模式:为你的 Wi-Fi 网络生成 20+ 字符的随机密码。Wi-Fi 密码只需输入一次后存储在设备上,记忆性不重要——最大化熵值才是关键。
  • 利用自定义单词创建个人词组:在词组模式中,在自定义单词字段输入你生活中的单词(宠物名、街道名、爱好)。生成器从你已经知道的单词创建词组,几乎不可能忘记。
  • 多次生成选取最佳密码:重复按生成键产生多个候选密码。比较它们并选择对你最容易使用同时保持所需强度级别的那个。
  • 以强度指示器为最低门槛:任何保护敏感数据的密码至少应达到「强」(70+ 位熵值)。「非常强」(100+ 位)适合加密密钥和主密码。

替代方案

虽然 Toollect 密码生成器在基于浏览器的密码创建方面表现出色,但针对不同使用场景也存在几种替代方案。

工具 / 方法 最佳用途 限制
Toollect 密码生成器 浏览器端、词组模式、自定义单词、隐私优先 需要网络加载页面
内置密码管理器(iCloud Keychain、Google、Bitwarden) 跨设备自动填入和同步 受限于特定生态系统,密码生成选项不一
Diceware 手动方法 气隙环境、零信任词组密码生成 需要实体骰子和单词列表,频繁使用较慢
命令行工具(openssl rand、pwgen) 开发环境中的脚本化生成 无图形界面,需要终端访问,无强度可视化
xkcd 风格方法 手动创建易记词组密码 依赖人类随机性,可预测且有偏差
在线密码生成器 无需安装快速生成 隐私风险——密码通过网络传输

对于大多数需要即时、安全、私密的密码生成,且同时支持随机和词组模式灵活性的用户,Toollect 密码生成器提供了功能、安全和便利的最佳平衡。

疑难解答

问题 原因 解决方案
密码包含模糊字符 未勾选排除模糊选项 启用「排除模糊字符」以移除易混淆的字符
词组使用非预期单词 自定义单词字段为空,默认使用 EFF 单词列表 工具默认使用英文 EFF 列表。在自定义单词字段填入你自己的单词
短密码显示「弱」 密码长度低于 10 字符 增加长度滑块,或在词组模式中增加单词数
复制按钮无效 浏览器剪贴板权限 确保浏览器允许剪贴板访问。可使用 Ctrl+C(Cmd+C)手动复制
无法在输出字段输入 输出字段为只读设计 单击生成创建密码,然后使用复制按钮
密码被网站拒绝 网站有特定字符限制 检查网站的密码策略并调整字符集。尝试禁用符号
词组密码超过服务允许的最大长度 单词数或分隔符选择导致字符串过长 减少单词数,使用「无」分隔符,或切换到随机模式使用较短长度
工具无法离线工作 页面需要先在线加载 在有网络连接时加载页面。一旦加载完成,该会话期间可离线工作

技术规格

Toollect 密码生成器专为安全性、性能和广泛兼容性而设计。

性能基准

密码长度 生成时间 内存使用
16 字符 < 1 ms < 1 MB
64 字符 < 1 ms < 1 MB
128 字符 < 2 ms < 1 MB

技术详情

  • 随机数生成器crypto.getRandomValues()(Web Crypto API)——密码学安全,由操作系统熵源支持
  • 单词列表:EFF 短单词列表 #1(1296 个单词),嵌入在应用程序代码中
  • 洗牌算法:Fisher-Yates(无偏,O(n))
  • 强度算法:基于熵值计算:随机密码熵值 = 长度 × log2(字符集大小)。词组密码熵值 = 单词数 × log2(1296)
  • 强度阈值:弱 0-29,普通 30-49,良好 50-69,强 70-99,非常强 100+ 位
  • 剪贴板 APInavigator.clipboard.writeText() 带视觉反馈
  • 事件模型:按钮点击触发生成;滑块输入实时更新配置

浏览器兼容性

浏览器 最低版本 状态
Google Chrome 80+ 完整支持
Mozilla Firefox 75+ 完整支持
Apple Safari 13+ 完整支持
Microsoft Edge 80+ 完整支持
Samsung Internet 13+ 完整支持
Opera 67+ 完整支持

隐私与安全

  • 零数据传输:所有密码生成在浏览器内存中完成
  • 不使用 cookies、localStorage 或 sessionStorage
  • 工具页面上没有分析或跟踪脚本
  • 初始页面加载后可完全离线使用
  • 无需注册、登录或 API 密钥
  • 使用密码学安全随机数生成(非 Math.random())

功能特色

  • 随机密码生成,可自定义长度(8-128)与字符集
  • 词组密码模式,使用 EFF 单词列表生成好记又安全的密码
  • 自定义单词支持 — 使用任何语言的单词生成词组密码
  • 基于熵值计算的实时强度指示器
  • 密码学安全随机生成(crypto.getRandomValues)
  • 100% 客户端处理,不上传任何数据到服务器

常见问题

什么是密码生成器?为什么我应该使用它?
密码生成器能建立抵抗猜测和暴力破解的强随机密码。使用生成器可确保你不会依赖字典单词、生日或重复字符等容易被黑客破解的弱模式。
随机模式和词组模式有什么不同?
随机模式从你选择的字符集生成一串随机字符。词组模式将多个单词组合成更长但更容易记住的词组。词组密码通过长度提供相当或更好的安全性,同时更容易记住和输入。
这个密码生成器安全吗?
安全。生成器使用 Web Crypto API 的 crypto.getRandomValues() 方法,这是银行和安全应用程序使用的同一标准。所有处理都在浏览器中进行,没有密码会通过网络传送或存储在任何地方。
我可以在词组中使用自己的单词吗?
可以。在词组模式中,你可以在自定义单词字段输入自己的单词。生成器会从你的单词中随机选取,而非内置单词列表。这让你用记得的单词以任何语言建立词组密码。
我应该使用多长的密码?
对大多数用途,12-16 个字符提供强大的安全性。对高度敏感的帐户,使用 20 个字符以上。对于词组密码,从 EFF 短列表(1296 个单词)中选取 5-6 个单词可提供约 50-60 位元的熵值,这是极佳的安全性。
密码强度如何计算?
强度使用熵值(不确定性的位数)计算。对随机密码,使用长度 × log2(字符集大小)。对词组密码,使用单词数 × log2(单词列表大小)。更高的熵值意味着更强的防止暴力破解能力。
ESC