CTF中那些脑洞大开的编码和加密

mac2022-06-30  200

原文:

http://www.tuicool.com/articles/2E3INnm

http://www.secbox.cn/hacker/ctf/8078.html

 

0x01 目录

常见编码:

ASCII编码Base64/32/16编码shellcode编码Quoted-printable编码XXencode编码UUencode编码URL编码Unicode编码Escape/Unescape编码HTML实体编码敲击码(Tap code)莫尔斯电码(Morse Code)编码的故事

各种文本加密

换位加密:

栅栏密码(Rail-fence Cipher)曲路密码(Curve Cipher)列移位密码(Columnar Transposition Cipher)

替换加密:

埃特巴什码(Atbash Cipher)凯撒密码(Caesar Cipher)ROT5/13/18/47简单换位密码(Simple Substitution Cipher)希尔密码(Hill Cipher)猪圈密码(Pigpen Cipher)波利比奥斯方阵密码(Polybius Square Cipher)夏多密码(曲折加密)普莱菲尔密码(Playfair Cipher)维吉尼亚密码(Vigenère Cipher)自动密钥密码(Autokey Cipher)博福特密码(Beaufort Cipher)滚动密钥密码(Running Key Cipher)Porta密码(Porta Cipher)同音替换密码(Homophonic Substitution Cipher)仿射密码(Affine Cipher)培根密码(Baconian Cipher)ADFGX和ADFGVX密码(ADFG/VX Cipher)双密码(Bifid Cipher)三分密码(Trifid Cipher)四方密码(Four-Square Cipher)棋盘密码(Checkerboard Cipher)跨棋盘密码(Straddle Checkerboard Cipher)分组摩尔斯替换密码(Fractionated Morse Cipher)Bazeries密码(Bazeries Cipher)Digrafid密码(Digrafid Cipher)格朗普雷密码(Grandpré Cipher)比尔密码(Beale ciphers)键盘密码(Keyboard Cipher)

其他有趣的机械密码:

恩尼格玛密码

代码混淆加密:

asp混淆加密php混淆加密css/js混淆加密VBScript.Encode混淆加密ppencoderrencodejjencode/aaencodeJSfuckjotherbrainfuck编程语言

相关工具

参考网站

0x01 Base64

Base64:

ZXZhbCgkX1BPU1RbcDRuOV96MV96aDNuOV9qMXVfU2gxX0oxM10pNTU2NJC3ODHHYWJIZ3P4ZWY=

Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='

Base32: Base32和Base64相比只有一个区别就是,用32个字符表示256个ASC字符,也就是说5个ASC字符一组可以生成8个Base字符,反之亦然。

base64在线编解码

当然还有base32和base16加密,base64全家桶可以用python里的base64模块来搞定。

参考链接1

参考链接2

0x02 希尔密码

希尔密码:密文: 22,09,00,12,03,01,10,03,04,08,01,17 (明文:wjamdbkdeibr)

解题思路:使用的矩阵是 1 2 3 4 5 6 7 8 10

更多请参考原文链接

详见百度百科

 

0x03 栅栏密码

栅栏密码:把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。

密文样例:tn c0afsiwal kes,hwit1r  g,npt  ttessfu}ua u  hmqik e {m,  n huiouosarwCniibecesnren.

解密程序:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 char s[]= "tn c0afsiwal kes,hwit1r  g,npt  ttessfu}ua u  hmqik e {m,  n huiouosarwCniibecesnren.";   char t[86]= "";   int i,j,k; k=0; for (i=0;i<17;i++)   {         for(j=0;j<5;j++)         {                   t[k++]= ch[j*17+i];         }   }   for(i=0;i<85;i++) {     printf("%c",t[i]); }  

更多请参考原文链接 百度百科

 

0x04 凯撒密码

凯撒密码:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。

密文样例:

U8Y ]:8KdJHTXRI>XU#?!K_ecJH]kJG*bRH7YJH7YSH]*=93dVZ3^S8*$:8"&:9U]RH;g=8Y!U92'=j*$KH]ZSj&[S#!gU#*dK9\.

解题思路:得知是凯撒加密之后,尝试进行127次轮转爆破:

 

1 2 3 4 5 6 7 8 9 10 11 12 13 lstr ="""U8Y]:8KdJHTXRI>XU#?!K_ecJH]kJG*bRH7YJH7YSH]*=93dVZ3^S8*$:8"&:9U]RH;g=8Y!U92'=j*$KH]ZSj&[S#!gU#*dK9\."""</p>for p in range(127):str1 ''for i in lstr:temp chr((ord(i)+p)%127)if 32<ord(temp)<127 :str1 = str1 + tempfeel 1else:feel 0breakif feel == 1:print(str1)

更多请参考原文链接

 

0x05 维吉利亚加密

凯撒密码的升级,更多详见百度百科

 

0x06 Unicode

密文样例:

\u5927\u5bb6\u597d\uff0c\u6211\u662f\u0040\u65e0\u6240\u4e0d\u80fd\u7684\u9b42\u5927\u4eba\uff01\u8bdd\u8bf4\u5fae\u535a\u7c89\u4e1d\u8fc7\

unicode在线解密

 

0x07 brainfuck

类型:

++++++++++ [>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

利用BFVM.exe直接解密

用法 loadtxt 1.txt

brainfuck在线解密

 

0x08 摩斯密码

密文样例:--  ---  .-.  ...  .

摩斯密码在线翻译

 

0x09 jsfuck or jother

把 JavaScript 代码转为 ()[]{}!+ 字符

密文样例:

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!

转载于:https://www.cnblogs.com/ssooking/p/6559935.html

最新回复(0)