维吉尼亚密码工具
使用用户提供的关键字,通过维吉尼亚多表密码对文本进行加密和解密,每个字母依关键字变化进行不同幅度的位移。包含实时密钥对齐流、正规方阵(Tabula Recta)可视化、自动密钥(Autokey)和博福特(Beaufort)变体、往返验证以及卡西斯基(Kasiski)周期提示。
检测到广告拦截,导致我们无法展示广告
MiniWebtool 依靠广告收入免费提供服务。如果这个工具帮到了你,欢迎开通 Premium(无广告 + 更快),或将 MiniWebtool.com 加入白名单后刷新页面。
- 或升级 Premium(无广告)
- 允许 MiniWebtool.com 显示广告,然后刷新
维吉尼亚密码工具
这款维吉尼亚密码工具可以加密和解密文本,使用的是抵抗了密码分析近 300 年的多表代替密码。输入任何消息和关键词,您会立即获得密文,以及一个垂直堆叠的密钥对齐流,该流将明文、密钥和密文字母组合显示 — 这样您就可以直观地看到每个字母改变的原因。该工具还展示了原始的自动密钥(Autokey)变体、在二战中用于 Hagelin M-209 便携式机械密码机的博福特(Beaufort)相互变体、双向验证证明以及用于手动验证的 26×26 维吉尼亚方格(tabula recta)。
一步步推导思路
以明文 ATTACKATDAWN 和关键词 LEMON 为例。在下方重复排列关键词,直到它覆盖完明文,然后逐个位置将两个字母相加(A=0, B=1, …, Z=25),并执行模 26 运算。
读取绿色行即得到密文 LXFOPVEFRNHR。密钥字母 L 将 A 向后移位 11 个位置(A→L),E 将 T 向后移位 4 个位置(T→X),依此类推。相同的明文字母 A 出现了三次,但被加密成了三个不同的字母(L, O, E) — 这就是多表代替属性,也是维吉尼亚密码能够攻克单字母频率分析的原因。
一行公式说明数学原理
为字母表编码:A=0 到 Z=25。令 \( p_i \) 为第 i 个明文字母,\( k_i \) 为对应的密钥字母(关键词循环使用,因此 \( k_i = K_{i \bmod n} \),其中 \( n \) 是密钥长度)。那么:
加密: \( c_i = (p_i + k_i) \bmod 26 \) · 解密: \( p_i = (c_i - k_i) \bmod 26 \)
对于博福特(Beaufort)变体,相同的一行公式 \( c_i = (k_i - p_i) \bmod 26 \) 可以同时处理加密和解密。对于自动密钥(Autokey)变体,密钥变成了 \( k_1, k_2, \dots, k_n, p_1, p_2, \dots \) — 一旦关键词用完,明文自身就会扩展成为密钥。
三大变体详述
维吉尼亚方格 (Tabula Recta)
应用维吉尼亚密码的古典方法是在一个 26×26 的表格中查找每个字母,其中第 r 行是字母表向后轮转 r 个位置的结果。找到密钥字母对应的行,找到明文字母对应的列 — 交点处的单元格就是密文字母。要解密,先找到密钥行,横向扫描到密文字母,然后读取对应的列标题。
| · | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| B | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A |
| C | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B |
| D | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C |
| E | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D |
| F | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E |
| G | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F |
| H | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G |
| I | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H |
| J | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I |
| K | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J |
| L | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K |
| M | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L |
| N | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M |
| O | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N |
| P | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| Q | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P |
| R | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q |
| S | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R |
| T | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S |
| U | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T |
| V | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U |
| W | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
| X | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W |
| Y | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X |
| Z | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y |
行标签 = 密钥字母。列标题 = 明文字母。单元格内容 = 密文字母。示例:L 行,A 列 → L。E 行,T 列 → X。
如何使用维吉尼亚密码工具
- 将您的明文(加密)或密文(解密)粘贴到输入框中。右侧的实时密钥对齐流垂直堆叠显示明文、密钥字母和生成的密文字母,因此逐字移位一目了然。
- 在关键词字段中输入一个关键词。非字母字符会自动被过滤。观察橙色关键词切片在字母消耗时的循环,以及“最新字符对”放大器如何展开最近的 明文 + 密钥 = 密文 三元组。
- 选择模式(加密或解密)和变体(维吉尼亚、自动密钥或博福特)。博福特是自反转的,因此模式不会改变其输出结果。
- 点击应用维吉尼亚。完整输出将显示在下方,并配有逐字移位追踪、统计信息(密钥长度、周期、覆盖率)、双向验证证明以及在相同输入下对比每个变体的并排密码实验室。
- 使用复制按钮获取密文、原始内容或关键词。要解密,只需粘贴密文,将模式切换为使用相同关键词的解密,然后再次点击即可。
维吉尼亚 vs 凯撒 vs 阿特巴希 vs ROT13 — 快速参考
| 密码 | 类型 | 密钥 | 自反转 | 使用密钥 LEMON 的 "HELLO" |
|---|---|---|---|---|
| 维吉尼亚密码 | 多表代替密码 | 关键词(1+字母) | 否(使用解密) | SIXZB |
| 凯撒密码 (移位 3) | 单表轮转密码 | 单次移位 | 否 | KHOOR |
| ROT13 | 轮转密码(固定 13) | 无(固定) | 是 | URYYB |
| 阿特巴希密码 | 镜像反转密码 | 无(固定) | 是 | SVOOL |
| 博福特密码 | 多表相互密码 | 关键词 | 是 | EABDZ |
为什么维吉尼亚曾被称为“不可破译的密码”
在 Bellaso 于 1553 年首次发表该密码后的近三个世纪里,维吉尼亚密码一直被认为是不可破解的。一个明文字母根据其所处位置最多可以加密成 26 个不同的密文字母,因此攻克凯撒密码的平坦频率假设(英文中 E 是最常见的字母)不再有效。Charles Babbage 在 19 世纪 50 年代破译了它,但没有发表;Friedrich Kasiski 于 1863 年独立发表了该破译方法。核心要点在于:关键词是重复的,因此在相隔密钥长度倍数位置上的相同明文子串会产生相同的密文。找到重复三字母组的间距,求其最大公约数,就能得到密钥长度的强有力候选值。一旦密钥长度已知,维吉尼亚密码就会分解为 n 个并行的凯撒密码,其中每一个都可以通过频率分析攻破。
卡西斯基考试 — 维吉尼亚密码是如何陨落的
- 在密文中扫描重复的 3 字母或 4 字母序列。
- 记录每对重复序列之间的距离。
- 计算这些距离的最大公约数 — 密钥长度几乎总是能整除这个最大公约数 (GCD)。
- 将密文拆分为 n 列(每隔 n 个字母一列)。每一列都是一个凯撒密码。
- 对于每一列,找出能使重合指数最大化或匹配英文大写字母频率的字母移位量。该移位量就是其中一个密钥字母。
您可以尝试点击“易受卡西斯基攻击”快捷示例来看看这一现象:输入重复了 "The quick brown fox",而密钥只有 3 个字母,所以相同的单词两次都被加密成完全相同的内容 — 这对于卡西斯基密码分析员来说就像闪烁的霓虹灯一样明显。
Babbage / Kasiski / Friedman 破译家族
- Babbage(19 世纪 50 年代,未发表)。 发现重复的模式出卖了密钥长度。
- Kasiski (1863)。 发表了相同的观点:重复序列之间的距离是密钥长度的倍数。
- Friedman (1922)。 引入了重合指数 (Index of Coincidence) — 一种统计度量方法,在正确的列拆分下,其峰值接近 ~0.067(英文特征),而不是随机分布的 ~0.038。
- 现代计算机。 遍历 1 到 30 的所有密钥长度,计算每个列拆分的重合指数 (IC),选取拆分后平均 IC 最高的那一个长度。然后对每一列进行频率攻击。总耗时:几毫秒。
安全提示
维吉尼亚密码不是现代加密技术。5 个字母的关键词用卡西斯基方法几毫秒就能破译,而 20 个字母的关键词在自动化分析下也支撑不了几秒。即使是消除了周期性弱点的自动密钥变体,也容易受到已知明文攻击以及对关键词前缀的可能字攻击。切勿使用维吉尼亚密码来保护密码、个人数据、财务信息或任何需要保密的内容。实际防护请使用 AES-256、ChaCha20、RSA 或 libsodium。请将维吉尼亚密码视为一种混淆文本的手段 — 用于谜题、CTF、教学和历史演示 — 而非用于保障安全。
获得最佳效果的技巧
- 要解密,请粘贴密文,输入相同的关键词,然后将模式切换为解密。同一个工具可以同时处理加密和解密。
- 对于博福特变体,模式并不重要 — 用相同的密钥应用两次博福特密码将直接还原原始内容。
- 如果您只关心字母(输出中不需要空格或标点),请取消勾选“保留原始大小写” — 输入在加密/解密前会被规范化为大写,且输出仅包含大写字母。
- 输入中的空格和标点符号将保持不变直接通过。如果您想向普通读者隐藏单词边界,请在粘贴前自行将其剔除。
- 使用密码实验室观察相同的密钥在所有三种变体下的表现 — 由于密钥流发生了改变,自动密钥在初始 n 个字母之后的输出通常与经典维吉尼亚密码大相径庭。
常见问题
什么是维吉尼亚密码?
维吉尼亚密码是一种多表代替密码,它根据重复的关键词来决定每个明文字母的不同移位量。如果密钥字母是 K(第 11 个字母),则明文字母向后移位 10 个位置。该密码最初由 Giovan Battista Bellaso 于 1553 年描述,后来被错误地归功于 Blaise de Vigenère,并因此得名。
维吉尼亚密码与凯撒密码或阿特巴希密码有什么不同?
凯撒密码对每个字母使用单一的固定移位 — 一个字母的维吉尼亚密钥完全等同于凯撒密码。维吉尼亚密码在每个位置使用不同的移位,这些移位取自重复的关键词 — 这就是为什么相同的明文字母可以加密成几个不同的密文字母。阿特巴希密码是无密钥的固定反转 (A↔Z, B↔Y)。维吉尼亚密码更难通过单字母频率分析来破译,因为密钥平滑了字母频率。
维吉尼亚密码对真正的加密安全吗?
不安全。Friedrich Kasiski 在 1863 年通过利用重复关键词的周期性破解了维吉尼亚密码。现代计算机利用弗里德曼测试(重合指数)和卡西斯基考试可以瞬间破译维吉尼亚密码。实际保护请使用 AES-256、ChaCha20 或 libsodium;维吉尼亚密码仅用于谜题、CTF 和教学。
什么是自动密钥(Autokey)变体?
自动密钥通过附加明文自身来扩展关键词,因此密钥流永远不会重复。维吉尼亚在 1586 年提出了这一改进,以攻克卡西斯基后来利用的周期性弱点。自动密钥比经典的维吉尼亚密码更难破解,但仍然容易受到已知明文攻击以及对关键词前缀的可能字攻击。
什么是博福特(Beaufort)变体?
博福特密码使用的操作是 密文 = (密钥 − 明文) mod 26,这使得它成为自身的逆运算 — 用相同的密钥加密两次会返回原始内容。它以 Sir Francis Beaufort 的名字命名,是美军在二战中使用的便携式机械密码机 Hagelin M-209 背后的密码原理。
我的关键词应该多长?
越长越好。单字母密钥会将维吉尼亚密码退化为凯撒密码。短密钥(3-5 个字母)在几秒钟内就会被卡西斯基方法破解。与消息长度相同且仅使用一次的密钥就是一次性密码本 — 证明是不可破解的。对于谜题和教学,通常选择 6-12 个字母的关键词。
引用此内容、页面或工具为:
"维吉尼亚密码工具" 于 https://MiniWebtool.com/zh-cn/维吉尼亚密码工具/,来自 MiniWebtool,https://MiniWebtool.com/
由 MiniWebtool 团队维护。更新时间: 2026-05-26