列换位密码示例——逐步学习
通过涵盖加密、解密、双重换位和密码分析的详细实践示例,掌握列换位密码。每个示例展示从关键字排序到网格构建和列读取的每个步骤。所有示例均可使用我们的列换位编码器和解码器进行验证。
示例 1:使用关键字 ZEBRAS 的基础加密
这个经典示例使用著名关键字 ZEBRAS 演示标准列换位过程。
问题设置
明文:WE ARE DISCOVERED FLEE AT ONCE 关键字:ZEBRAS
第一步:确定列顺序
按字母顺序排列关键字字母,相同字母按位置排序:
| 字母 | Z | E | B | R | A | S |
|---|---|---|---|---|---|---|
| 位置 | 0 | 1 | 2 | 3 | 4 | 5 |
| 顺序 | 6 | 3 | 2 | 4 | 1 | 5 |
字母顺序排名:A(位置 4)=1、B(位置 2)=2、E(位置 1)=3、R(位置 3)=4、S(位置 5)=5、Z(位置 0)=6
第二步:将明文写入网格
去除空格,按 6 列逐行写入:
| Z(6) | E(3) | B(2) | R(4) | A(1) | S(5) |
|---|---|---|---|---|---|
| W | E | A | R | E | D |
| I | S | C | O | V | E |
| R | E | D | F | L | E |
| E | A | T | O | N | C |
| E | X | X | X | X | X |
最后一行用 X 填充。
第三步:按 1、2、3、4、5、6 顺序读取各列
- 第 1 列(A):EVLNX
- 第 2 列(B):ACDTX
- 第 3 列(E):ESEAX
- 第 4 列(R):ROFOX
- 第 5 列(S):DEECX
- 第 6 列(Z):WIREE
结果:WE ARE DISCOVERED FLEE AT ONCE -> EVLNXACDTXESEAXROFOXDEECXWIREE
示例 2:基础解密
将示例 1 的密文解密回原始消息。
问题设置
密文:EVLNXACDTXESEAXROFOXDEECXWIREE 关键字:ZEBRAS
第一步:计算网格尺寸
30 个字符 / 6 列 = 5 行(整除,无短列)
第二步:按字母顺序填入各列
每列取 5 个字符,按 1、2、3、4、5、6 顺序填入:
第 1 列(A,位置 4):E V L N X 第 2 列(B,位置 2):A C D T X 第 3 列(E,位置 1):E S E A X 第 4 列(R,位置 3):R O F O X 第 5 列(S,位置 5):D E E C X 第 6 列(Z,位置 0):W I R E E
第三步:将各列放回原始位置重建网格
| Z(0) | E(1) | B(2) | R(3) | A(4) | S(5) |
|---|---|---|---|---|---|
| W | E | A | R | E | D |
| I | S | C | O | V | E |
| R | E | D | F | L | E |
| E | A | T | O | N | C |
| E | X | X | X | X | X |
第四步:逐行读取
WEAREDISCOVEREDFLEEATONCEXXXXX
去除填充:WE ARE DISCOVERED FLEE AT ONCE
示例 3:短关键字加密
较短的关键字产生较少的列,从而形成不同的网格结构。
问题设置
明文:ATTACK AT DAWN 关键字:KEY
第一步:列顺序
| K | E | Y |
|---|---|---|
| 2 | 1 | 3 |
字母顺序:E=1、K=2、Y=3
第二步:填写网格(去除空格)
| K(2) | E(1) | Y(3) |
|---|---|---|
| A | T | T |
| A | C | K |
| A | T | D |
| A | W | N |
无需填充(12 个字符 / 3 列 = 4 行,整除)。
第三步:按 1、2、3 顺序读取
- 第 1 列(E):TCTW
- 第 2 列(K):AAAA
- 第 3 列(Y):TKDN
结果:ATTACK AT DAWN -> TCTWAAAATKDN
示例 4:双重列换位
双重换位应用两轮加密,提供显著更强的安全性。
问题设置
明文:HELLO WORLD 第一关键字:CAB 第二关键字:DUSK
第一步:使用关键字 CAB 进行首次加密
列顺序:A=1、B=2、C=3
| C(3) | A(1) | B(2) |
|---|---|---|
| H | E | L |
| L | O | W |
| O | R | L |
| D | X | X |
用 X 填充。读取各列:EORX LWLX HLOD
第一轮结果:EORXLWLXHLOD
第二步:使用关键字 DUSK 进行第二次加密
列顺序:D=1、K=2、S=3、U=4
按字母顺序排列:D=1、K=2、S=3、U=4
| D(1) | U(4) | S(3) | K(2) |
|---|---|---|---|
| E | O | R | X |
| L | W | L | X |
| H | L | O | D |
按 1、2、3、4 顺序读取:ELH XXD RLO OWL
最终密文:ELHXXDRLOOWL
双重换位解密
解密时,逆转过程:先用关键字 DUSK 解密,再用关键字 CAB 解密。
示例 5:处理关键字中的重复字母
当关键字包含重复字母时,按位置(从左到右)打破平局。
问题设置
明文:SECRET 关键字:BANANA
第一步:含重复字母的列顺序
| B | A | N | A | N | A |
|---|---|---|---|---|---|
| 2 | 1 | 5 | 3 | 6 | 4 |
三个 A:第一个 A(位置 1)= 排名 1,第二个 A(位置 3)= 排名 3,第三个 A(位置 5)= 排名 4。 两个 N:第一个 N(位置 2)= 排名 5,第二个 N(位置 4)= 排名 6。 一个 B:B(位置 0)= 排名 2。
第二步:填写网格
| B(2) | A(1) | N(5) | A(3) | N(6) | A(4) |
|---|---|---|---|---|---|
| S | E | C | R | E | T |
6 个字符只需一行。
第三步:按 1、2、3、4、5、6 顺序读取
E S R T C E
结果:SECRET -> ESRTCE
常见问题
哪里可以找到带解答的列换位密码示例?
本页面提供了完整的列换位密码示例及逐步解答,涵盖基础加密和解密、短关键字、双重换位以及处理重复关键字字母。所有示例包含网格可视化,并可使用我们的编码器和解码器工具进行验证。
如何逐步解决列换位问题?
加密:写下关键字,按字母顺序为各列编号,逐行将明文填入网格(如有需要则填充),然后按编号顺序读取各列。解密:计算网格尺寸,按字母顺序用密文段填入各列,然后逐行读取网格。请参见上方示例 1 和示例 2 的完整演示。
双重列换位如何工作?
用第一个关键字正常加密消息,然后将所得密文用第二个关键字再次加密。解密时反向操作:先用第二个关键字解密,再用第一个关键字解密该结果。上方示例 4 演示了完整过程。
关键字中的重复字母如何影响加密?
当关键字含有重复字母(如 BANANA)时,按位置从左到右打破平局。字母首次出现获得较低排名。这确保了无论字母重复与否,列顺序都是唯一确定的。请参见示例 5 的演示。
应该使用什么填充字符?
最常见的填充字符是 X 和 Z,因为它们是英语中频率最低的字母。某些实现使用随机字母或不进行填充。填充字符的选择不影响安全性,但使用可辨认字符可使手动解密更加容易。