柱形密码是利用密钥重新排列明文中的字母位置的一种加密方法。
【加密原理】
1、比如我们要对“tomorrow is another day”加密,密钥是“KEY”。首先将密钥循环对应明文,列出一个表格:
![](https://img.haomeiwen.com/i2145634/97af9c8c95ab1797.png)
2、然后根据KEY三个密钥字母分别对应的明文字母,列出一个柱状表格。例如:Y对应明文M、R、I、N、H、D,则依序排成一列:
![](https://img.haomeiwen.com/i2145634/324919daef53617e.png)
3、将密钥按照字母顺序表重新排列,相应的明文一列也交换顺序。例如:KEY按照字母顺序表变成EKY,表格转换如下:
![](https://img.haomeiwen.com/i2145634/8202f42981425709.png)
将表格中的明文进行纵向排列,得到密文:orwatrytoosoeamrinhd
![](https://img.haomeiwen.com/i2145634/d9b5d1e4cf8bdfee.png)
【解密原理】
1、首先要知道密钥为KEY,共有3个字符。密文为orwatrytoosoeamrinhd,共有20个字符。
明文每列字符数=密文的长度20/密钥长度3= 6,余数2,不能整除的话结果还需要+1,所以每列字符数为7。
2、把密钥KEY按字母顺序排列为EKY,然后将密文每列7个重新排列:
![](https://img.haomeiwen.com/i2145634/15d7d6f6fa2d6c65.png)
3、把密钥按照原本单词顺序排列:
![](https://img.haomeiwen.com/i2145634/8be2dda8c22456a8.png)
4、将表格中的密文进行横向排列,得到明文:tomorrowisanotherday.
![](https://img.haomeiwen.com/i2145634/a00ec5e831ab6f04.png)
【代码实现】
![](https://img.haomeiwen.com/i2145634/3d748d375e018212.png)
网友评论