常见工具

CyberChef

地址:https://github.com/gchq/CyberChef
image.png

随波逐流 CTF编码工具

地址:http://1o1o.xyz/
image.png

编码

ascii码

ASCII(发音:,American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本延伸美国标准信息交换码则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。
ASCII 由电报码发展而来。第一版标准发布于1963年 ,1967年经历了一次主要修订[5][6],最后一次更新则是在1986年,至今为止共定义了128个字符;其中33个字符无法显示(一些终端提供了扩展,使得这些字符可显示为诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是陈废的控制字符。控制字符的用途主要是用来操控已经处理过的文字。在33个字符之外的是95个可显示的字符。用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。

ascii码对照表:https://blog.csdn.net/yueyueniaolzp/article/details/82178954


Hex

十六进制(简写为 hex 或下标 16)是一种基数为 16 的计数系统,是一种逢 16 进 1 的进位制。通常用数字 0、1、2、3、4、5、6、7、8、9 和字母 A、B、C、D、E、F(a、b、c、d、e、f)表示,其中: A~F 表示 10~15,这些称作十六进制数字。


base64编码

基于64个可打印的字符来表示二进制的数据的一种方法。

在使用base64时,需要先定义一串字符串,ABCD……abcd……1234……+/,以上为base64的索引表,在进行编码后也会出现=,==,这是由于补位的需要出现的。
原理:
1.将待转换的字符每三个字节分为一组,一个字节占8个bit,共有24bit。
2.将24个bit每6个分为一组,共4组
3.在每组前加两个0,每组由6个bit变为8个bit,共32bit,即4字节
4.根据每个字节的10进制数在开头定义的字符串中找对照。
image.png
如图,对ABC进行编码时,先将其转为ascii码,分别为65,66,67,再更换为二进制为01000001,01000010,01000011.将其分为4组后在前面加上00,为00010000,00010111,00001001,00000011 。转为索引就是16,20,9,3,在开头的字符串中进行索引得到QUJD。

以上为满足分为3个字节时,不满足3个字节时
image.png
以一个字节为例,当缺少两个字节时,第二组缺少2位,所以对其补上0,会得到2个base编码,而后两组没有数据,所以用=补上,这也就是base64由64个字符组成,最后会出现“=”号的原因。