柵欄密碼 (The rail fence cipher)
write by asakuras
簡單來說,柵欄密碼就是把一個明文(去掉空格)分成n組,每組m個,然后一定的排序方法(看下面例子)來將這些字符重新組合。通過m的大小稱其為m欄柵欄密碼,比較常見的m取2,即2欄柵欄密碼。
舉例
① n = 7, m = 2
假設明文為:have a good night
加密過程如下:
將其去掉空格:haveagoodnight
分成7組:ha ve ag oo dn ig ht
ha
ve
ag
oo
dn
ig
ht
按照豎排來組合,則它的柵欄密碼為:hvaodihaegongt
解密過程如下:
先將其分為2組:hvaodih aegongt
hvaodih
aegongt
然后按照每組按次序取一個進行重新組合:ha ve ag oo dn ig ht
拼起來即可:haveagoodnight
添加上必需的空格即可:have a good night
② n = 4, m = 5
假設明文為:let us meet at the bridge
加密過程如下:
將其去掉空格:letusmeetatthebridge
分成4組:letus meeta ttheb ridge
letus
meeta
ttheb
ridge
則它的柵欄密碼為:lmtreetitehdutegsabe
解密過程如下:
先將其分為5組:lmtr eeti tehd uteg sabe
lmtr
eeti
tehd
uteg
sabe
然后按照每組按次序取一個進行重新組合:letus meeta ttheb ridge
拼起來即可:letusmeetatthebridge
添加上必需的空格即可:let us meet at the bridge