# 栅栏(ZigZag)密码

栅栏转置密码的编码、解码、可视化和穷举。显示锯齿轨道栅格,并尝试所有轨道数以破解密文。

> 标准页面: https://elysiatools.com/zh/tools/zigzag-railfence-text

- **分类:** Text Processing

- **关键词:** 栅栏密码, 锯齿密码, 转置密码, 古典密码, 穷举

## 概述

栅栏密码是经典转置密码:将明文按锯齿形写入 N 条水平轨道,再逐行读取得到密文。本工具支持编码、解码、可视化锯齿栅格(看清字符如何映射到各轨),以及穷举 2–10 轨来破解未知轨道数。与替换密码不同,栅栏密码保留全部原始字母,只重排顺序,因此词频分析无效;破解方法是尝试不同轨道数。

## 输入项

- **文本** (textarea): e.g. WEAREDISCOVERED
- **模式** (select)
- **轨道数** (number)

## 适用场景

- 需要使用指定轨道数对明文进行栅栏密码编码时。
- 已知轨道数，想将栅栏密码密文还原为原文时。
- 不知道轨道数，或想查看字符在锯齿轨道中排列方式时。

## 工作原理

- 输入要编码、解码或分析的文本。
- 选择编码、解码、可视化或穷举模式。
- 编码和解码时设置 2–20 条轨道；穷举模式会尝试 2–10 条轨道。
- 工具按锯齿路径排列字符，并以 HTML 结果显示密文、还原文本或轨道栅格。

## 使用案例

- 学习经典密码学中的转置密码原理。
- 验证指定轨道数下的文本编码和解码结果。
- 通过锯齿栅格或轨道穷举分析未知轨道数的密文。

## 常见问题

### 什么是栅栏密码？

栅栏密码是一种转置密码，将文本按锯齿形写入多条轨道，再逐行读取。

### 编码时需要设置轨道数吗？

需要。轨道数决定字符排列方式，工具支持设置 2–20 条轨道。

### 不知道轨道数时怎么办？

选择“穷举”模式，工具会尝试 2–10 条轨道并显示结果。

### 可视化模式会显示什么？

可视化模式会显示字符在锯齿轨道栅格中的排列位置。

### 栅栏密码会替换原始字符吗？

不会。它保留原始字符，只改变字符的排列顺序。

## 相关工具

- [扩展文本编码(Base65536 + netstring)](https://elysiatools.com/zh/tools/extended-text-base-codecs): 编码/解码较少见的文本编码:Base65536(二进制→高密度 Unicode)和 netstring(自定界成帧)。Base85 不重复建设(已覆盖)。
- [黑客语转换器](https://elysiatools.com/zh/tools/leet-speak-converter): 在文本与 leet 语（1337）之间互转。用基础、完整或全大写风格编码，或把 leet 解码回纯文本。
- [A1Z26 字母数字工作台](https://elysiatools.com/zh/tools/a1z26-letter-number-workbench): 字母与数字互转(A=1, B=2 … Z=26),可配置分隔符和大小写;支持数字解码回字母,以及计算文本字母求和。
- [ASCII85转换器](https://elysiatools.com/zh/tools/ascii85-converter): 将文本编码/解码为ASCII85格式（Adobe版本）
- [Base32转换器](https://elysiatools.com/zh/tools/base32-converter): 将文本编码/解码为Base32格式，支持多种变体
- [Base45转换器](https://elysiatools.com/zh/tools/base45-converter): 将文本编码/解码为Base45格式（RFC 9285）
- [Base58转换器](https://elysiatools.com/zh/tools/base58-converter): 将文本编码/解码为Base58格式，支持比特币和瑞波币变体
- [Base62转换器](https://elysiatools.com/zh/tools/base62-converter): 将文本编码/解码为Base62格式（0-9, A-Z, a-z）

## 示例

- [无版权MP3音频样本](https://elysiatools.com/zh/samples/mp3-samples): 免费使用和测试的无版权音频样本集合，包括自然声音、冥想音乐和环境音频，适用于测试和开发目的
- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换
