CTF中那些脑洞大开的编码和加密
0x00 前言
正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问题:表哥,你知道这是什么加密吗?其实CTF中脑洞密码题(非现代加密方式)一般都是各种古典密码的变形,一般出题者会对密文进行一些处理,但是会给留一些线索,所以写此文的目的是想给小伙伴做题时给一些参考,当然常在CTF里出现的编码也可以了解一下。本来是想尽快写出参考的文章,无奈期间被各种事情耽搁导致文章断断续续写了2个月,文章肯定有许多没有提及到,欢迎小伙伴补充,总之,希望对小伙伴们有帮助吧!最后欢迎小伙伴来[博
客](https://www.hackfun.org/)玩耍:P(ps:由于写文章是用markdown,而论坛编辑器不支持markdown语法,虽然我已经尽力去调整对其字符,可是效果还是不尽人意,如果影响阅读理解可以去博客阅读:P)
0x01 目录
常见编码:
1.ASCII编码
2.Base64/32/16编码 3.shellcode编码
4.Quoted-printable编码 5.XXencode编码 6.UUencode编码 7.URL编码 8.Unicode编码
9.Escape/Unescape编码 10.HTML实体编码 11.敲击码(Tap code)
12.莫尔斯电码(Morse Code) 13.编码的故事
各种文本加密
换位加密:
1.栅栏密码(Rail-fence Cipher) 2.曲路密码(Curve Cipher)
3.列移位密码(Columnar Transposition Cipher)
替换加密:
1.埃特巴什码(Atbash Cipher) 2.凯撒密码(Caesar Cipher)
3.ROT5/13/18/47
4.简单换位密码(Simple Substitution Cipher) 5.希尔密码(Hill Cipher) 6.猪圈密码(Pigpen Cipher)
7.波利比奥斯方阵密码(Polybius Square Cipher) 8.夏多密码(曲折加密)
9.普莱菲尔密码(Playfair Cipher) 10.维吉尼亚密码(Vigenère Cipher) 11.自动密钥密码(Autokey Cipher) 12.博福特密码(Beaufort Cipher)
13.滚动密钥密码(Running Key Cipher) 14.Porta密码(Porta Cipher)
15.同音替换密码(Homophonic Substitution Cipher) 16.仿射密码(Affine Cipher) 17.培根密码(Baconian Cipher)
18.ADFGX和ADFGVX密码(ADFG/VX Cipher) 19.双密码(Bifid Cipher) 20.三分密码(Trifid Cipher)
21.四方密码(Four-Square Cipher) 22.棋盘密码(Checkerboard Cipher)
23.跨棋盘密码(Straddle Checkerboard Cipher)
24.分组摩尔斯替换密码(Fractionated Morse Cipher) 25.Bazeries密码(Bazeries Cipher) 26.Digrafid密码(Digrafid Cipher) 27.格朗普雷密码(Grandpré Cipher) 28.比尔密码(Beale ciphers) 29.键盘密码(Keyboard Cipher)
其他有趣的机械密码: 1.恩尼格玛密码
代码混淆加密:
1.asp混淆加密 2.php混淆加密 3.css/js混淆加密
4.VBScript.Encode混淆加密 5.ppencode 6.rrencode
7.jjencode/aaencode 8.JSfuck 9.jother
10.brainfuck编程语言
相关工具
参考网站
彩蛋
0x02 正文
常见编码
1.ASCII编码
ASCII编码大致可以分作三部分组成:
第一部分是:ASCII非打印控制字符(参详ASCII码表中0-31);
第二部分是:ASCII打印字符,也就是CTF中常用到的转换;
第三部分是:扩展ASCII打印字符(第一第三部分详见[ASCII码表](http://www.asciima.com/)解释)。
编码转换示例
源文本:`The quick brown fox jumps over the lazy dog`
ASCII编码对应十进制: 84 104 101 32 113 117 105 99 107 32 98 114 111 119 110 32 102 111 120 32 106 117 109 112 115 32 111 118 101 114 32 116 104 101 32 108 97 122 121 32 100 111 103 对应可以转换成二进制,八进制,十六进制等。
2.Base64/32/16编码
base64、base32、base16可以分别编码转化8位字节为6位、5位、4位。16,32,64分别表示用多少个字符来编码,这里我注重介绍base64。Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括MIME的email,email via MIME,在XML中存储复杂数据。
编码原理:Base64编码要求把3个8位字节转化为4个6位的字节,之后在6位的前面补两个0,形成8位一个字节的形式,6位2进制能表示的最大数是2的6次方是64,这也是为什么是64个字符(A-Z,a-z,0-9,+,/这64个编码字符,=号不属于编码字符,而是填
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库CTF中那些脑洞大开的编码和加密在线全文阅读。
相关推荐: