Files
2025-09-25 04:06:06 +08:00

34 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 栅栏密码的原理是什么
**加密原理**
栅栏密码的原理是,将明文的字母像写在交错的栅栏上一样,然后按行读取
1. **选择密钥**:首先,你需要选择一个密钥,这个密钥就是一个整数,表示“栅栏”的层数。例如,密钥为 3,就表示有 3 层栅栏
2. **构造栅栏**:将明文的字母按照“之”字形(zig-zag)的路径,依次填写到对应层数的栅栏上
3. **按行读取**:加密后的密文就是将每一层栅栏上的字母,从上到下、从左到右依次连接起来
**示例:**
- **明文**`WE ARE DISCOVERED. FLEE AT ONCE.`
- **密钥**`3`
我们将明文写在 3 层栅栏上:
现在,我们按行读取,忽略点号,只提取字母:
- **第一行**`WEDOEE`
- **第二行**`ERDSOEFETNC`
- **第三行**`AICSVRAOC`
将三行连接起来,就得到了密文:
**密文**`WEDOEE ERDSOEFETNC AICSVRAOC`
**解密原理**
解密过程是加密的逆向操作,你需要知道密钥和密文的长度
1. **计算每行长度**:根据密钥和密文长度,计算出每一层栅栏上的字母数量
2. **重构栅栏**:根据计算出的数量,将密文依次填回到“之”字形的栅栏结构中
3. **按“之”字形读取**:最后,按照原来的“之”字形路径,依次读取每个位置上的字母,就能还原出原始明文