概论
位移编码有凯撒密码、rot加密等(其他的加密都不确定都哪些是位移编码类型的……)
凯撒密码也属于替换加密的一种,替换加密类型有:
Atbash Cipher埃特巴什码
Caesar Cipher凯撒密码
ROT5/13/18/47
Simple Substitution Cipher简单换位密码
Hill Cipher希尔密码
Polybius Square Cipher波利比奥斯方阵密码
夏多密码(曲折加密)
Playfair Cipher普莱费尔密码
Vigenere Cipher维吉尼亚密码
Autokey Cipher自动密钥密码
Beaufort Cipher波弗特密码
Running Key Cipher滚动密钥密码
Porta Cipher门户密码
Homophonic Substitution Cipher同音替换密码
Affine Cipher仿射密码
Baconian Cipher培根密码
ADFG/VX Cipher ADFG和ADFGVX密码
Bifid Cipher双密码
Trifid Cipher三分密码
Four-Square Cipher四方密码
Checkerboard Cipher棋盘密码
不过替换加密感觉不是位移编码,这些加密方式具体概念可以百度一下都有的,这里就不写出来了。
下面主要写下凯撒密码的题目复现吧,以后见到位移编码的题再补充——
题目复现
实验吧 - 变异凯撒
题目地址:http://www.shiyanbar.com/ctf/2038
题目内容:加密密文:afZ_r9VYfScOeO_UL^RWUc 格式:flag{ }
题目是变异凯撒,所以这题就是用了凯撒加密,观察密文发现里面还有下划线和数字,说明不是简单的英文字母表的位移了,那就很可能是ASCII码表的位移了,题目上说格式是flag{ },所以找下afz_和flag的关系,查下ASCII表

找到ASCII值:a(97)f(102)、f (102)l (108)、Z (90)a (97)、_ (95)g (103),可以发现规律:第一个字符偏移量为5,第二个字符偏移量为6,之后偏移量依次递增。
解密可以对照ASCII码表一个字符一个字符的解,也可以用脚本。可以用Python脚本比较简单
1 | ciphertext = 'afZ_r9VYfScOeO_UL^RWUc' |

得出flag为flag{Caesar_variation}
实验吧 - 我喜欢培根
题目地址:http://www.shiyanbar.com/ctf/1842
打开解题链接,可以看到这是一串摩斯密码
1 | -- --- .-. ... . ..--.- .. ... ..--.- -.-. --- --- .-.. ..--.- -... ..- - ..--.- -... .- -.-. --- -. ..--.- .. ... ..--.- -.-. --- --- .-.. . .-. ..--.- -.. -.-. -.-. -.. -.-. -.-. -.-. -.. -.. -.. -.-. -.. -.-. -.-. -.-. -.. -.. -.-. -.-. -.-. -.-. -.-. -.-. -.-. -.-. -.-. -.. -.. -.-. -.. -.-. -.-. -.-. -.-. -.. -.-. -.-. -.-. -.-. -.-. / -.-. -.. -.-. -.-. -.-. -.. -.-. -.-. -.. -.-. / -.-. -.-. -.-. -.. -.-. -.-. -.. -.. -.. -.-. -.-. -.. -.. -.. -.-. -.-. -.. -.-. -.. -.. |
在线解密一下,解出
1 | MORSE..--.-IS..--.-COOL..--.-BUT..--.-BACON..--.-IS..--.-COOLER..--.-DCCDCCCDDDCDCCCDDCCCCCCCCCDDCDCCCCDCCCCC/CDCCCDCCDC/CCCDCCDDDCCDDDCCDCDD |
题目上说到培根而且可以看到解出来的BACON就是培根的意思,而培根所用的密码是一种本质上用二进制数设计的,
没有用通常的0和1来表示,而是采用a和b,所以替换一下
1 | 密文:DCCDCCCDDDCDCCCDDCCCCCCCCCDDCDCCCCDCCCCC/CDCCCDCCDC/CCCDCCDDDCCDDDCCDCDD |
培根密码表:

也可以在线解密,结果是:SHIYANBA IS COOL,所以flag为CTF{SHIYANBA IS COOL}
实验吧 - 困在栅栏里的凯撒
题目地址:http://www.shiyanbar.com/ctf/1867
题目内容是:小白发现了一段很6的字符:NlEyQd{seft}
Nl、Ey、Qd、{s、ef、t}
然后合并得NEQ{etlydsf}
再用凯撒解密,在线解密:http://www.zjslove.com/3.decode/kaisa/index.html

可以看到第12次解密就是flag了,提交时ctf要大写:CTF{tianshu}
实验吧 - 密文rot13
题目地址:http://www.shiyanbar.com/ctf/728
这题非常简单,直接把题目给的字符串在线解密一下就出来了
主要是记录一下这个加密类型,第一次见到这种加密类型,不止rot13还有rot5、rot18、rot47这四个是一样的,rot加密也是典型的位移编码的一种
ROT5、ROT13、ROT18、ROT47 编码是一种简单的码元位置顺序替换暗码。此类编码具有可逆性,可以自我解密,主要用于应对快速浏览,或者是机器的读取,而不让其理解其意
ROT5 是 rotate by 5 places 的简写,意思是旋转5个位置,其它皆同。下面分别说说它们的编码方式:
ROT5:只对数字进行编码,用当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推顺序循环
ROT13:只对字母进行编码,用当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环
ROT18:这是一个异类,本来没有,它是将ROT5和ROT13组合在一起,为了好称呼,将其命名为ROT18
ROT47:对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。用于ROT47编码的字符其ASCII值范围是33-126,具体可参考ASCII编码
bugkuCTF - 简单加密
题目地址:https://ctf.bugku.com/challenges#%E7%AE%80%E5%8D%95%E5%8A%A0%E5%AF%86
题目内容是一串字符
1 | e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA |
后面有一个AA,联想到base64后面有==,猜测应该是凯撒解密后再base64解密,首先查下ASCII表,A的ASCII码是65,=的ASCII码是61,往后偏移了四位,凯撒解密下得到base64字符串
1 | a2V5ezY4NzQzMDAwNjUwMTczMjMwZTRhNThlZTE1M2M2OGU4fQ== |
然后base64解密,flag为key{68743000650173230e4a58ee153c68e8}
bugkuCTF - 散乱的密文
题目地址:https://ctf.bugku.com/challenges#%E6%95%A3%E4%B9%B1%E7%9A%84%E5%AF%86%E6%96%87
题目内容是
lf5{ag024c483549d7fd@@1} 一张纸条上凌乱的写着2 1 6 5 3 4
| 2 | 1 | 6 | 5 | 3 | 4 |
|---|---|---|---|---|---|
| l | f | 5 | { | a | g |
| 0 | 2 | 4 | c | 4 | 8 |
| 3 | 5 | 4 | 9 | d | 7 |
| f | d | @ | @ | 1 | } |
按照123456顺序重新组合一下分为六组,f25d、l03f、a4d1、g87}、{c9@、544@
可以看出这是个栅栏密码,解密后是flag{52048c453d794df1}@@,flag就是flag{52048c453d794df1}
暂时先写这几题吧,之后做到这种题在更新。。。