CTF-misc-常见编码

本文最后更新于:1 年前

常见CTF编码及加解密

ASCLL

简述:

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

举例:

1
2
3
4
5
明文:hello,world.     
十六进制:0x680x650x6c0x6c0x6f0xff0c0x770x6f0x720x6c0x640x2e
十进制:1041011081081112551211911111410810046
二进制:0110100001100101011011000110110001101111
00101100011101110110111101110010011011000110010000101110

在线解码:

1: https://www.107000.com/T-Ascii
2: http://www.ab126.com/goju/1711.html

base 家族编码:

1
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表情符号内容解码为文本。

举例:

1
明文:hello,world.123456 
1
2
base32: NBSWY3DPFR3W64TMMQXDCMRTGQ3DK===    
特征:大写字母(A-Z)和数字(2-7),不满5的倍数,用‘=’补齐。
1
2
base64: aGVsbG8sd29ybGQuMTIzNDY1    
特征:大小写字母(A-Z,a-z)和数字(0-9)以及特殊字符‘+’,‘/’,不满3的倍数,用‘=’补齐。
1
2
base58: 2smDFYXWKE8vc8XA8dadEYcSqcQb    
特征:相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+""/"符号,最主要的是后面不会出现'='
1
2
base85: BOu!rDst>tGAhM<A1fSl1GgsI   
特征:特点是奇怪的字符比较多,但是很难出现等号。
1
2
3
4
明文:hello,world.123456   
base91: TPwJh>go2Tv!_,aRA2IbLmA
特征:由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
不支持中文。
1
2
base100: 👟👜👣👣👦📦💳💃👮👦👩👣👛🐥🐨🐩🐪🐫🐬🐭
特征:就是一堆Emoji表情

在线解码:

base16 / base32 / base64
图片base64编码
base58
base85
base91
base100

MD5、SHA1、HMAC、NTLM等类似加密型

1、MD5

简述:

一般MD5值是32位由数字“0-9”和字母“a-f”所组成的字符串,字母大小写统一;如果出现这个范围以外的字符说明这可能是个错误的md5值,就没必要再拿去解密了。
​16位值是取的是8~24位

特征:

有固定长度,一般是32位或者16位
​由数字“0-9”和字母“a-f”组成

举例:

1
2
3
明文:hello,world.123456   
md5(hello,world.123456,32) = 5189503aae1b1c0a6fbf7ea9e3128ab0
md5(hello,world.123456,16) = ae1b1c0a6fbf7ea9

在线加解密

MD5解密1
MD5解密2

2、SHA1

简述

SHA1是一种密码散列函数,SHA1可以生成一个被称为消息摘要的160位,20字节的散列值,散列值通常的呈现形式为40位十六进制数。这种加密和MD5类似。

特征

有固定长度,为40位的字符串

举例

1
2
明文:hello,world.123456    
sha1(hello,world.123456)=0179303b8f08fbc3d16cd23a4be5828790e12375

在线加解密

SHA1加解密1
SHA1加解密2

3、HMAC

简述:

HMAC (Hash-based Message Authentication Code) 常用于接口签名验证,这种算法就是在前两种加密的基础上引入了秘钥,而秘钥又只有传输双方才知道,所以基本上是破解不了的 。

特征:

​和MD5类似,但是有秘钥。

在线加解密:

HAMC加解密

4、NTLM

简述:

​这种加密是Windows的哈希密码,是 Windows NT 早期版本的标准安全协议。与它相同的还有Domain Cached Credentials(域哈希)。

在线解密:

NTML加解密

5、类似加密穷举

# 算法 长度
1 md5 32/16
2 sha1 40
3 sha256 64
4 sha512 128
5 adler32 8
6 crc32 8
7 crc32b 8
8 fnv132 8
9 fnv164 16
10 fnv1a32 8
11 fnv1a64 16
12 gost 64
13 gost-crypto 64
14 haval128,3 32
15 haval128,4 32
16 haval128,5 32
17 haval160,3 40
18 haval160,4 40
19 haval160,5 40
20 haval192,3 48
21 haval192,4 48
22 haval192,5 48
23 haval224,3 56
24 haval224,4 56
25 haval224,5 56
26 haval256,3 64
27 haval256,4 64
28 haval256,5 64
29 joaat 8
30 md2 32
31 md4 32
32 ripemd128 32
33 ripemd160 40
34 ripemd256 64
35 ripemd320 80
36 sha224 56
37 sha3-224 56
38 sha3-256 64
39 sha3-384 96
40 sha3-512 128
41 sha384 96
42 sha512/224 56
43 sha512/256 64
44 snefru 64
45 snefru256 64
46 tiger128,3 32
47 tiger128,4 32
48 tiger160,3 40
49 tiger160,4 40
50 tiger192,3 48
51 tiger192,4 48
52 whirlpool 128
53 mysql 老MYSQL数据库用的,16位,且第1位和第7位必须为0-8
54 mysql5 40
55 NTLM 32
56 Domain Cached Credentials 32

AES、DES、RC4、Rabbit、3DES型加密

简述:

以上都是非对称性加密算法,就是引入了密钥,密文特征与Base64类似.

在线解密:

非对称加密

Unicode编码

简述:

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。
它用两个字节来编码一个字符,字符编码一般用十六进制来表示.

举例:

Unicode有以下四种编码方式:

1
2
3
4
5
6
7
8
9
10
明文:helloworld.

&#x [hex]&#x0068;&#x0065;&#x006C;&#x006C;&#x006F;&#xFF0C;&#x0077;&#x006F;&#x0072;&#x006C;&#x0064;&#x002E;

&# [hex]&#00104;&#00101;&#00108;&#00108;&#00111;&#65292;&#00119;&#00111;&#00114;&#00108;&#00100;&#00046;

\u [hex]:\U0068\U0065\U006C\U006C\U006F\U002C\U0077\U006F\U0072\U006C\U0064\U002E

\u+ [hex]:\U+0068\U+0065\U+006C\U+006C\U+006F\U+FF0C\U+0077\U+006F\U+0072\U+006C\U+0064\U+002E

在线编码:

四种方式都有
unicode16进制
unicode
常见\u方式

HTML实体编码

简述:

字符实体是用一个编号写入HTML代码中来代替一个字符,在使用浏览器访问网页时会将这个编号解析还原为字符以供阅读。

举例:

1
2
3
明文:hello,world.
十进制:&#104;&#101;&#108;&#108;&#111;&#65292;&#119;&#111;&#114;&#108;&#100;&#46;
十六进制:&#x68;&#x65;&#x6C;&#x6C;&#x6F;&#xFF0C;&#x77;&#x6F;&#x72;&#x6C;&#x64;&#x2E;

在线加解密:

HTML实体加解密
HTML实体加解密2

Escape、Unescape编码(%u)

简述:

Escape/Unescape加密解码/编码解码,又叫%u编码,其实就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉”%u”后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”,反之也一样!

举例:

1
2
明文:hello,world.
密文:%u0068%u0065%u006c%u006c%u006f%uff0c%u0077%u006f%u0072%u006c%u0064%u002e

在线加解密:

Escape编码/解码

URL编码

简述:

url编码又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理。 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI、encodeURIComponent,PHP有 urlencode、urldecode等。编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16进制是’20’,那么urlencode编码结果是:%20。

特征:

编码前面都有%.

在线加解密:

URL加解密

Hex编码

简述:

Hex 全称 是Intel HEX。Hex文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。

特征:

  • 十六进制(Hexadecimal)

  • 它是计算机中数据的一种表示方法,由0-9,A-F组 成,字母不区分大小写。

  • 与10进制的对应关系是:0-9不变,A-F对应10-15。

举例:

1
2
3
明文:hello,world.
密文(带%):%68%65%6c%6c%6f%ef%bc%8c%77%6f%72%6c%64%2e
密文(不带%):68656C6C6FEFBC8C776F726C642E

在线加解密:

不带%
带%

js专用加密

1、JS颜文字加密

特征:

一堆颜文字构成的js代码,在F12中可直接解密执行

在线加密:

JS颜文字加密
解密在F12的console中

2、Jother编码

简述:

jother是一种运用于javascript语言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式。

特征:

只用 ! + ( ) [ ] { } 这八个字符就能完成对任意字符串的编码。可在F12中解密执行

在线解密:

Jother

  • 一堆+!的东西就用jother解码

  • 可以打开谷歌浏览器 按F12

  • 然后console将那堆解码的东西复制过去 按回车即可解码

3、JSFuck编码

特征:

与jother很像,只是少了{ }

在线加密:

JSFuck加密
解密在F12的console中

Quoted-printable编码

简述:

它是多用途互联网邮件扩展(MIME) 一种实现方式。有时候我们可以邮件头里面能够看到这样的编码;

特征:

任何一个8位的字节值可编码为3个字符:一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值.

举例:

1
2
明文:天上掉下了个猪八戒
密文:=E5=A4=A9=E4=B8=8A=E6=8E=89=E4=B8=8B=E4=BA=86=E4=B8=AA=E7=8C=AA=E5=85=AB=E6=88=92

在线编码:

在线编码

XXencode

简述:

​ XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6bit为单位分为4个组,每个组以十进制来表示所出现的数值只会落在0到63之间。以所对应值的位置字符代替。

特征:

字符范围是:

0-9,A-Z,a-z,

一共64个字符。跟base64打印字符相比,就是UUencode多一个“-” 字符,少一个”/” 字符。

举例:

1
2
明文:hello,world.
密文:BO4JgP4yXf5RjQalY9U++

在线加解密:

UUencode加解密

UUencode

简述:

​ UUencode是一种二进制到文字的编码,最早在unix邮件系统中使用,全称:Unix-to-Unix encoding,UUencode将输入文本以每三个字节为单位进行编码,如果最后剩下的资料少于三个字节,不够的部份用零补齐。三个字节共有24个Bit,以6-bit为单位分为4个组,每个组以十进制来表示所出现的字节的数值。这个数值只会落在0到63之间。然后将每个数加上32,所产生的结果刚好落在ASCII字符集中可打印字符(32-空白…95-底线)的范围之中。

举例:

1
2
明文:hello,world.
密文:,:&5L;&\L=V]R;&0N

在线解密工具

UUencode1
UUencode2

aaencode编码

特征:

将JS代码转换成常用的网络表情

在线加解密:

aaencode1
aaencode2
aaencode3

jjencode编码

特征:

将JS代码转换成只有符号的字符串

在线加解密

jjencode加密
jjencode解密

brainfuck编码

简述:

Brainfuck是一种极小化的计算机语言,按照”Turing complete(完整图灵机)”思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言。

特征:

BrainFuck 语言只有八种符号,所有的操作都由这八种符号 (> < + - . , [ ]) 的组合来完成。

举例:

1
2
3
4
明文:hello,world.
密文:+++++ +++++ [->++ +++++ +++<] >++++ .---. +++++ ++..+ ++.<+ +++++ ++[->
----- ---<] >---. <++++ ++++[ ->+++ +++++ <]>++ +++++ ++++. ----- ---.+
++.-- ----. ----- ---.< +++++ ++[-> ----- --<]> ----- .<

在线加解密:

Brainfuck1
Brainfuck2

摩尔斯电码

简述:

​ 摩尔斯电码(Morse Code)是由美国人萨缪尔·摩尔斯在1836年发明的一种时通时断的且通过不同的排列顺序来表达不同英文字母、数字和标点符号的信号代码,摩尔斯电码主要由以下5种它的代码组成:

  • 点(.)
  • 划(-)
  • 每个字符间短的停顿(通常用空格表示停顿)
  • 每个词之间中等的停顿(通常用 / 划分)
  • 以及句子之间长的停顿
  • 莫尔斯电码对应表:
A .- B -… C -.-. D -.. E . F ..-. G –. H …. I .. J .—
K -.- L .-.. M – N -. O — P .–. Q –.- R .-. S … T -
U ..- V …- W .– X -..- Y -.– Z –.. 0 —– 1 .—- 2 ..— 3 …–
4 ….- 5 ….. 6 -…. 7 –… 8 —.. 9 —-. . .-.-.- , –..– ? ..–.. - -….-
= -…- : —… ; -.-.-. ( -.–. ) -.–.- / -..-. “ .-..-. $ …-..- ‘ .—-. ¶ .-.-..
_ ..–.- @ .–.-. ! —. ! -.-.– + .-.-. ~ .-… # …-.- & . … ⁄ -..-.

特征:

由 . - “空格” / 表示。

在线加解密:

莫斯电码1

社会主义编码

特征:

字符全部是社会主义核心价值观。

在线加解密:

社会主义编码

与佛论禅

特征:

密文以”佛曰:如是我闻:”开头,密文一般是与关佛经的汉字.

在线工具:

与佛论禅

兽音译者

特征:

~ 呜嗷嗷嗷嗷呜啊嗷啊 ~

举例:

1
2
hello world
~呜嗷嗷嗷嗷呜啊嗷啊~呜嗷呜呜~嗷~嗷啊嗷啊呜嗷嗷呜~~嗷~呜呜嗷啊~嗷嗷嗷呜啊嗷嗷啊呜嗷呜呜啊嗷呜~啊嗷啊呜嗷呜嗷啊~嗷~呜呜嗷~啊嗷嗷嗷呜啊呜呜呜呜嗷呜呜~嗷嗷~啊嗷啊呜嗷嗷~~啊

在线解密:

兽语在线解密

rabbit密码

举例:

1
2
3
hello world
U2FsdGVkX1/m3oJAd3oTJ1WJCbsLcYvTxUNFug==

在线解密:

rabbit密码解密

栅栏密码加密解密

特征:

栅栏密码是一种简单的移动字符位置的加密方法,规则简单,容易破解。栅栏密码的加密方式:把文本按照一定的字数分成多个组,取每组第一个字连起来得到密文1,再取每组第二个字连起来得到密文2……最后把密文1、密文2……连成整段密文.

举例:

1
2
hello world
hlowrdel ol

在线解密:

栅栏密码解密

当铺密码

特征:

当铺密码为简单加密法,加密方式以汉字出头的笔画来计数
例:“由”字有一笔出头,则为1

举例:

1
王夫 井工 夫口 由中人 井中 夫夫 由中大=67 84 70 123 82 77 125

转换出来的数字多用于十进制转ascII

在线解密:

当铺密码

猪圈密码

特征:

由以下符号组成:

在线解密

猪圈密码在线解密

rot13

特征:

套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后的对应字母,有需要超过时则重新绕回26英文字母开头即可。A换成N、B换成O、依此类推到M换成Z,然后序列反转:N换成A、O换成B、最后Z换成M。只有这些出现在英文字母里头的字元受影响;数字、符号、空白字元以及所有其他字元都不变。不过它好像凯撒密码的变形版,凯撒密码是将明文的字母向后移动三位的到密文:

在线解密

rot13解密

英文大小写替换

在线替换

英文字母大小写替换


CTF-misc-常见编码
http://example.com/2021/12/05/CTF-misc-常见编码/
作者
zzh
发布于
2021年12月5日
更新于
2022年2月27日
许可协议
原文链接: HTTPS://ZHANGZHIHAO-BLOG.GITHUB.IO
版权声明: 转载请注明出处!