词表分析器

分析 diceware 或密码词表:不重复单词数、重复项、长度统计、每个单词的熵、达到 60–128 比特所需的单词数以及前缀检查。

空行和首尾空格会被忽略。

每个单词的熵为 log2(不重复单词数),前提是每个单词都被均匀随机选取(例如掷骰子)。唯一前缀长度是能唯一识别每个单词的最少开头字母数。

完全在浏览器中运行,您的数据不会被上传。

什么是 词表分析器?

粘贴一份词表(每行一个单词),检查它是否适合用于口令:有多少个不重复单词、重复项、单词长度、每个单词的熵、达到目标强度需要多少个单词,以及单词能否在不加分隔符的情况下连接。

如何使用 词表分析器

  1. 把列表粘贴到词表(每行一个单词)中,或点击加载 EFF 大词表。
  2. 查看统计:总数、不重复数、重复数、每个单词的熵和长度统计。
  3. 查看前缀结果以及达到 60、80 和 128 比特所需的单词数。
  4. 点击下载去重后的词表保存清理后的列表。

示例

输入
EFF large wordlist (7,776 words)
输出
Unique 7,776, entropy per word 12.9 bits, 5 words for 60 bits, 7 for 80 bits, 10 for 128 bits; prefix-free

EFF 大词表有 7,776 个单词,每个单词约 12.9 比特。

何时使用 词表分析器

适用于构建或审查自定义 diceware 列表(例如其他语言的),或清理用于游戏和工具的词表。只有在单词是均匀随机选取的情况下,熵的数值才成立。

词表分析器 的工作原理

每一行都会去掉首尾空白,空行被忽略。每个单词的熵 = log2(不重复单词数),所需单词数 = ceil(比特数 ÷ 每个单词的熵)。如果没有任何单词是另一个单词的开头,则该列表是无前缀的(在排序后的列表上检查);唯一前缀长度是使每个单词的前 k 个字符各不相同的最小 k。重复项会被统计并列出;清理后的列表保留每个单词第一次出现的位置。

常见用例

  • 验证翻译后的 diceware 词表
  • 检查口令中的单词能否安全地连接
  • 从单词列表中删除重复项
  • 比较 EFF 大词表和短词表

常见问题

为什么无前缀很重要?

如果 'app' 和 'apple' 都在列表中,那么 'apple' + 'ton' 与 'app' + 'leton' 可能产生相同的连接字符串,在不使用分隔符时会降低熵。

口令词表应该多大?

7,776 个单词(6^5)是五个骰子的标准,每个单词 12.9 比特;较小的列表则需要更多单词才能组成口令。

列表会被上传吗?

不会。分析完全在你的浏览器中运行。

探索更多分类