记录总结一下近段时间遇到的加密和编码方式,以后见到新的继续更新

目录:

加密

摩斯电码(Morse)

基本形式:

密文:– — .-. … .

明文:MORSE

还有一种变形,通过01来替代.-,用0表示.,用1表示-

解密网站:http://zhongguosou.com/zonghe/moErSiCodeConverter.aspx

栅栏密码

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

一般在ctf中的形式就是一堆无序的字符,中间掺杂了{和}(flag形式)

如bugku的一道题,给出KYsd3js2E{a2jda}

解密后得到KEY{sad23jjdsa2}

解密网站:http://www.zjslove.com/3.decode/zhalan/index.html

Ook

这个我也不知道叫什么名字。。形式就是一堆Ook,每个Ook后面跟句号叹号或问号

如数字1经此加密后为:

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook. Ook? Ook.

解密网站:https://www.splitbrain.org/services/ook

Brainfuck

这种加密主要以+[]-<>.,组合而成

如字母a加密后为:

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

解密网站:https://www.splitbrain.org/services/ook

凯撒密码

凯撒密码是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

因为只是每一位的字符偏移,一般在ctf中还是XXXX{XXXXX}的形式

解密网站:http://www.zjslove.com/3.decode/kaisa/index.html

!?.

这种加密是在bugku的一道题中遇到的,看了大佬的writeup发现用Ook的网站也能解密

不知道加密的原理,但Ook后面也跟是!?.,看来应该是同一种加密方式吧

解密网站:https://www.splitbrain.org/services/ook

雷驰加密

这种加密以前在一个站的后台遇到过,admin123加密后就是bfpms79;

这个加密的原理就是,第一位的a的ASCII值加1(即b),第二位加2(d下来两位是f),以此类推,得到密文

转轮机密码

以bugku的一道题目为例

Alt text

根据密钥第一个为2,密文第二个为H,即取出第二行,把从H往后(包括H)的字符全部放到前面

即将:<KPBELNACZDTRXMJQOYHGVSFUWI <

转换为:<HGVSFUWIKPBELNACZDTRXMJQOY <

以此类推,最终得到重新排列后的结果:

<HGVSFUWIKPBELNACZDTRXMJQOY <
<CPMNZQWXYIHFRLABEUOTSGJVDK <
<BVIQHKYPNTCRMOSFEZWAXJGDLU <
<TEQGYXPLOCKBDMAIZVRNSJUWFH <
<SLOQXVETAMKGHIWPNYCJBFZDRU <
<XQYIZMJWAORPLNDVHGFCUKTEBS <
<WATDSRFHENYVUBMCOIKZGJXPLQ <
<CEONJQGWTHSPYBXIZULVKMRAFD <
<RJLXKISEFAPMYGHBQNOZUTWDCV <
<QWXPHKZGJTDSENYVUBMLAOIRFC <
<GOIKFHENYVUWABMCXPLTDSRJQZ <
<LTDENQWAOXPYVUIKZGJBMCSRFH <
<ENYSRUBMCQWVJXPLTDAOIKFZGH <
<SWAYXPLVUBOIKZGJRFHENMCQTD <

可以看到倒数第六列很明显是一句话:XSXSBUGKUADMIN

使用键盘加密

给你一串字符:

r5yG lp9I BjM tFhB T6uh y7iJ QsZ bhM

明显看到是分了组的,观察键盘,发现r5yG中间的字符是t,以此类推,得到明文tongyuan

还有一种给出几组字符的,是在键盘上画字母,如uygbnjm形状就是a

仿射密码

仿射密码为单表加密的一种,字母系统中所有字母都藉一简单数学方程加密,对应至数值,或转回字母。

以bugku的affine为例,题目给出了:y = 17x-8 flag{szzyfimhyzd}

将szzyfimhyzd拿到网站解密,得到AFFINESHIFT

解密网站:https://www.dcode.fr/affine-cipher(需翻墙)

银河标准字母

这个也是做bugku的题碰到的

符号与字母对应如下:

Alt text

RSA

关于rsa的原理可以参考这篇文章:

https://blog.csdn.net/q376420785/article/details/8557266

解密的工具和网站:RsaCtfTool

http://www.bejson.com/enc/rsa/

猪圈密码

猪圈密码(亦称朱高密码、共济会暗号、共济会密码或共济会员密码),是一种以格子为基础的简单替代式密码。即使使用符号,也不会影响密码分析,亦可用在其它替代式的方法。

明文:ZHU 密文: Alt text

解密网站:http://www.simonsingh.net/The_Black_Chamber/pigpen.html

ROT

看一下千千秀字对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编码。

解密地址:https://www.qqxiuzi.cn/bianma/ROT5-13-18-47.php

AAencode

这个是把js的代码转换成各种颜文字

解码地址:https://tool.zcmzcm.org/aadecode

##JSFuck

这个是只使用()[]+!来表示js代码

解码地址:http://ctf.ssleye.com/jsfuck.html

Jother

这个还是跟js有关系的,用! + ( ) [ ] { }这几个字符来表示其他字符

jother可以直接粘贴到chrome的控制台中解密


常见编码

ASCII

ASCII码想必不用多说了 Alt text 在ctf的考点主要是2、8、16进制转换为十进制再对应ASCII转换为字符,可以用python来进行转换

Base全家桶

base家族中主要有base64、base32、base16

base64是由64个字符组成的编码,由字母大小写、数字、+/=组成

base32是由32个字符组成的编码,由大写字母和数字2-7组成

base16是由16个字符组成的编码,由大写字母ABCDEF和数字0-9组成

其他的还有base91等编码

解码网址:

http://ctf.ssleye.com/base64.html (base64、32、16)

https://www.dcode.fr/base-91-encoding (base91,这个也需要翻墙)

URL编码

URL编码就是字符的ASCII码转换为16进制,再在前面加上一个%

ctf中主要考点是web的url二次编码,有时也会在杂项和密码学中出现

Unicode编码

unicode也不用多介绍了,它主要有四种形式:

&#x (后跟16进制)

&# (后跟ascii码值)

\U (后跟16进制)

\U+ (后跟16进制)