🚧 栅栏密码
换位密码 · 之字形排列 · 可视化栅栏
换位密码 · 之字形排列 · 可视化栅栏
栅栏密码(Rail Fence)是一种换位密码,把明文按"之字形"写到多条"栅栏"(行)上,再按行从上到下读出密文。比如"HELLO WORLD"用3行栅栏,会得到一段打乱顺序的字符。
不安全。它不替换任何字符,只是重排位置,行数是唯一的"密钥"且只有有限几种可能(试验2到10行即可),暴力破解非常容易。它属于换位密码而非替换密码。
不是。加密时把明文填进栅栏再按行读出;解密需要知道明文长度和行数,才能还原每个字符原本的位置。本工具同时支持两者。
替换密码把每个字符换成另一个字符(如凯撒);换位密码不改字符本身,只改变字符的顺序。栅栏密码、列位移密码都属于换位密码,维吉尼亚、凯撒属于替换密码。
行数越多,看起来越乱,但并没有本质提升——行数依然是有限整数,穷举成本始终很低。真正决定换位密码强度的是排列方式的复杂度,而栅栏的"之字形"太规律了。
经典栅栏密码通常把空格也当作字符参与重排。本工具会保留空格位置一并参与加密,解密时也会还原。
主要用于教学、谜题、密室逃脱和游戏里的隐藏线索。它演示了"换位"这一现代密码的重要思想,但不适合任何真实保密需求。
可以。因为它是换位密码,不关心字符本身是什么,把每个汉字当作一个"字符"参与重排即可。本工具对任意字符都适用。
栅栏密码不产生任何新字符,只重排明文字符的位置,所以叫"换位密码"(transposition)。
| 维度 | 替换密码 | 换位密码 |
|---|---|---|
| 改字符 | 是,换成别的字符 | 否,字符不变 |
| 改顺序 | 否 | 是,重排位置 |
| 例子 | 凯撒、维吉尼亚、Atbash | 栅栏、列位移 |
| 频率特征 | 保留原频率 | 打乱顺序 |
现代密码往往同时结合"替换+换位"(混淆+扩散),AES就是这样做的。
栅栏密码的核心是"之字形"路径:从第1行出发向下走到最底行,再反弹向上走到顶行,如此往复,把明文字符依次放入当前行。
正是这条折返路径,让连续字符被分散到了不同的行。
因为行数范围有限,破解思路很直接:
| 步骤 | 做法 |
|---|---|
| 1 试探行数 | 从2到10逐一行数尝试 |
| 2 解密 | 用当前行数解密 |
| 3 判断 | 看结果是否成可读英文 |
| 4 确认 | 能读通即破解成功 |
加上可用词频、字母模式辅助判断,通常几秒内就能定位正确行数。
| 行数 | HELLO WORLD 加密结果特征 |
|---|---|
| 2行 | 奇偶字符分离 |
| 3行 | 经典之字形重排 |
| 5行 | 更分散的重排 |
| 10行 | 接近原顺序 |
| 密码 | 特点 | 强度 |
|---|---|---|
| 栅栏密码 | 之字形重排 | 很弱 |
| 列位移密码 | 按列读出 | 较弱 |
| 置换方阵 | 随机置换 | 中等 |
| 现代分组密码中的置换 | 配合替换 | 强 |
1. 输入文本。
2. 选择栅栏行数(2-10)。
3. 点击加密查看密文。
4. 将密文粘贴后点击解密恢复原文。
5. 查看下方栅栏排列示意图。