CTF常见编码及加解密(超全)
最近打了场ctf,真的是被各种编码以及加密方式给搞怕了,所以,今天就来整理一下ctf中常见的编码,顺便给这次比赛做一个总结。
@
前言
最近打了场ctf,真的是被各种编码以及加密方式给搞怕了,所以,今天就来整理一下ctf中常见的编码,顺便给这次比赛做一个总结。
常见CTF编码及加解密
补充
计算机中的数据都是按字节存储。一个字节(Byte)由8个二进制位组成(bit)。(组成范围是0~255(28)) 一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。
ASCII编码
简述 :
ASCII 码是对英语字符与二进制位之间的关系,做了统一规定。
基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,
如:空格SPACE 是32(二进制:00100000);
数字0 是48(二进制:00110000);
大写字母A 是65(二进制:01000001)。
另外还有 32 个控制字符(不能打印出来)。
这128个符号,只占用了一个字节的后面7位,最前面的一位统一规定为0。
特征: 只含有数字
-
0-9, 49-57
-
A-Z, 65-90
-
a-z, 97-122
举例:
明文:hello,world.
十六进制:0x680x650x6c0x6c0x6f0xff0c0x770x6f0x720x6c0x640x2e
十进制:1041011081081112551211911111410810046
二进制:011010000110010101101100011011000110111100101100011101110110111101110010011011000110010000101110
ASCII码对照表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xwhz2PqG-1605780409798)(../img/1605670745231.png)]
base家族编码
base16 / base32 / base64 / base58 / base85 / base 100
简述:
**Base16编码是将二进制文件转换成由16个字符组成的文本 **
base32的编码表是由(A-Z、2-7)32个可见字符构成,“=”符号用作后缀填充。
base64的编码表是由(A-Z、a-z、0-9、+、/)64个可见字符构成,“=”符号用作后缀填充。
base58的编码表相比base64少了数字0,大写字母I,O,小写字母 l (这个是L),以及符号‘+’和‘/’
base91的密文由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
**Base100编码/解码工具(又名:Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本。 **
原理:
具体原理不再详细描述,(主要是太耗时间,可以自行百度)
举例:
明文:hello,world.123456
base16: 68656C6C6F2C776F726C642E313233343635
特征:大写字母(A-Z)和数字(0-9),不用‘=’补齐。
base32: NBSWY3DPFR3W64TMMQXDCMRTGQ3DK===
特征:大写字母(A-Z)和数字(2-7),不满5的倍数,用‘=’补齐。
base64: aGVsbG8sd29ybGQuMTIzNDY1
特征:大小写字母(A-Z,a-z)和数字(0-9)以及特殊字符‘+’,‘/’,不满3的倍数,用‘=’补齐。
base58: 2smDFYXWKE8vc8XA8dadEYcSqcQb
特征:相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号,最主要的是后面不会出现\'=\'。
base85: BOu!rDst>tGAhM<A1fSl1GgsI
特征:特点是奇怪的字符比较多,但是很难出现等号
明文:hello,world.123456
base91: TPwJh>go2Tv!_,aRA2IbLmA
特征:由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
不支持中文。
base100: