编码方式_【每日一题】| 常见的编码方式之栅栏密码
柵欄密碼(Rail-fence Cipher)就是把要加密的明文分成N個字一組,然后把每組的第1個字符組合,每組第2個字符組合…每組的第N(最后一個分組可能不足N個)個字符組合,最后把他們全部連接起來就是密文。
02加密步驟我們以“I LOVE CTF”為例進行n=2的柵欄加密:
① 去掉空格,得到ILOVECTF.
② 因為n=2,所以我們以兩個字母為一組,總共分成4組得到IL OV EC TF
③ 依次讀取每組的第一個字母:IOET。完成后,再讀取每組第二個字母:LVCF
④ 最后把這兩列新得到的字符串組合在一起即完成加密:IOETLVCF
我們再以"Through love comes calm?and through calm comes thought"進行n=5的加密:
首先去掉空格和逗號,然后依次以5個為一行可得下方陣列:
t????h????r????o????u
g????h????l????o????v
e????c????o????m? ??e
s????c????a????l????m
a????n????d????t????h
r????o????u????g????h
c????a????l????m????c
d????m????e????s????t
h????o????u????g????h
t
注意:由于分組的原因,最后一行只有第一列有字母為T,后四列為空。
然后我們依次讀取第一列到第五列的字母,然后重新組合即完成加密。
密文:tgesarcohthhccnoamorloaduleuoomltgmsguvemhhcth
03解密步驟通過以上兩個例子,想必你已經掌握了柵欄密碼的加密原理,所以我們可以通過逆推得到根據一串密文去還原原文的方法:
以"hltodeofrlcwl"(n=3)為例進行解密:
首先要還原為原文的加密陣列,還原時把密文依次按列來放置即可。一共有13個字母,13/3=4...1 可見要構建一個3列5行的陣列。
但是注意,我們發現還余1,說明原文(也是13個字母)在進行加密時,最后一行只有第一列是有字母的,最后一行后幾列都為空,所以我們在還原原文的加密陣列時,第一列要有5個字母,往后的幾列只要4個字母即可。如下圖所示:
所以可得原文:helloctfworld
如果不想這么麻煩:這個網站滿足你:https://www.qqxiuzi.cn/bianma/zhalanmima.php
04每日一題小魚:來吧!!!下一個燈謎:
請解密wcemteojcflmnc,n=3.
提交形式:flag{...}
先在草稿紙上做一遍,再用網站哦!!!
CTF歡迎你!!!長按識別關注我們。總結
以上是生活随笔為你收集整理的编码方式_【每日一题】| 常见的编码方式之栅栏密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: McWCE.exe是什么进程 McWCE
- 下一篇: 美国大肆印钞制造全球通胀,我们该怎么应对