CTF常见编码及加解密(超全)

admin 2022年8月29日04:51:49CTF专场CTF常见编码及加解密(超全)已关闭评论32 views17999字阅读59分59秒阅读模式

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解码

https://www.107000.com/T-Ascii/

http://www.ab126.com/goju/1711.html

http://www.hiencode.com/jinzhi.html

https://baiy.github.io/Ctool/tool.html#/tool/ascii

https://icyberchef.com/#recipe=Text_Encoding_Brute_Force('Encode')

https://www.qqxiuzi.cn/bianma/ascii.htm

ASCII码对照表

  • • 输入字符时,连续输入即可。超出ASCII字集的字符以Unicode或UTF-16BE编码显示。

  • • 输入ASCII码时,以逗号分隔每个编码。十六进制和二进制编码支持连续输入,以兼容ASCII的UTF-16BE解码:十六进制 0000-007F;二进制 0000000000000000-0000000001111111。

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代美式英语,并等同于国际标准ISO/IEC 646。ASCII首次发布于1963年,后经数次修订,1986年定型最终版本使用至今。它是计算机中使用的第一个标准字符集编码。

ASCII编码范围0x00-0x7F,即十进制的0-127,定义了128个单字节字符,其中包含95个可打印字符(数字、字母、符号),以及33个控制字符(下表中文描述的字符)。国标码GB18030、国际码Unicode均兼容ASCII编码。

标准ASCII编码表

ASCII码 字符
16进制 10进制 2进制
0x00 0 00000000 NUL 空
0x01 1 00000001 SOH 标题开始
0x02 2 00000010 STX 正文开始
0x03 3 00000011 ETX 正文结束
0x04 4 00000100 EOT 传输结束
0x05 5 00000101 ENQ 询问字符
0x06 6 00000110 ACK 承认
0x07 7 00000111 BEL 报警
0x08 8 00001000 BS 退一格
0x09 9 00001001 HT 横向制表
0x0A 10 00001010 LF 换行
0x0B 11 00001011 VT 垂直制表
0x0C 12 00001100 FF 走纸控制
0x0D 13 00001101 CR 回车
0x0E 14 00001110 SO 移位输出
0x0F 15 00001111 SI 移位输入
0x10 16 00010000 DLE 数据链路转义
0x11 17 00010001 DC1 设备控制1
0x12 18 00010010 DC2 设备控制2
0x13 19 00010011 DC3 设备控制3
0x14 20 00010100 DC4 设备控制4
0x15 21 00010101 NAK 否定
0x16 22 00010110 SYN 空转同步
0x17 23 00010111 ETB 信息组传送结束
0x18 24 00011000 CAN 作废
0x19 25 00011001 EM 纸尽
0x1A 26 00011010 SUB 换置
0x1B 27 00011011 ESC 换码
0x1C 28 00011100 FS 文字分隔符
0x1D 29 00011101 GS 组分隔符
0x1E 30 00011110 RS 记录分隔符
0x1F 31 00011111 US 单元分隔符
0x20 32 00100000 (space)
0x21 33 00100001
0x22 34 00100010
0x23 35 00100011 #
0x24 36 00100100 $
0x25 37 00100101 %
0x26 38 00100110 &
0x27 39 00100111 '
0x28 40 00101000 (
0x29 41 00101001 )
0x2A 42 00101010 *
0x2B 43 00101011 +
0x2C 44 00101100 ,
0x2D 45 00101101 -
0x2E 46 00101110 .
0x2F 47 00101111 /
0x30 48 00110000 0
0x31 49 00110001 1
0x32 50 00110010 2
0x33 51 00110011 3
0x34 52 00110100 4
0x35 53 00110101 5
36 54 00110110 6
0x37 55 00110111 7
0x38 56 00111000 8
0x39 57 00111001 9
0x3A 58 00111010 :
0x3B 59 00111011 ;
0x3C 60 00111100 <
0x3D 61 00111101 =
0x3E 62 00111110 >
0x3F 63 00111111 ?
0x40 64 01000000 @
0x41 65 01000001 A
0x42 66 01000010 B
0x43 67 01000011 C
0x44 68 01000100 D
0x45 69 01000101 E
0x46 70 01000110 F
0x47 71 01000111 G
0x48 72 01001000 H
0x49 73 01001001 I
0x4A 74 01001010 J
0x4B 75 01001011 K
0x4C 76 01001100 L
0x4D 77 01001101 M
0x4E 78 01001110 N
0x4F 79 01001111 O
0x50 80 01010000 P
0x51 81 01010001 Q
0x52 82 01010010 R
0x53 83 01010011 S
0x54 84 01010100 T
0x55 85 01010101 U
0x56 86 01010110 V
0x57 87 01010111 W
0x58 88 01011000 X
0x59 89 01011001 Y
0x5A 90 01011010 Z
0x5B 91 01011011 [
0x5C 92 01011100 \
0x5D 93 01011101 ]
0x5E 94 01011110 ^
0x5F 95 01011111 _
0x60 96 01100000 `
0x61 97 01100001 a
0x62 98 01100010 b
0x63 99 01100011 c
0x64 100 01100100 d
0x65 101 01100101 e
0x66 102 01100110 f
0x67 103 01100111 g
0x68 104 01101000 h
0x69 105 01101001 i
0x6A 106 01101010 j
0x6B 107 01101011 k
0x6C 108 01101100 l
0x6D 109 01101101 m
0x6E 110 01101110 n
0x6F 111 01101111 o
0x70 112 01110000 p
0x71 113 01110001 q
0x72 114 01110010 r
0x73 115 01110011 s
0x74 116 01110100 t
0x75 117 01110101 u
0x76 118 01110110 v
0x77 119 01110111 w
0x78 120 01111000 x
0x79 121 01111001 y
0x7A 122 01111010 z
0x7B 123 01111011 {
0x7C 124 01111100 |
0x7D 125 01111101 }
0x7E 126 01111110 ~
0x7F 127 01111111 DEL 删除

Base家族编码

Base16 / Base32 / Base64 / Base58 / Base85 / Base 100

简述:

Base16编码

**Base16编码是将二进制文件转换成由16个字符组成的文本 **

它的特点是没有等号并且数字要多于字母

Base16编码的方式:

1.将数据(根据ASCII编码,UTF-8编码等)转成对应的二进制数,不足8比特位高位补0。然后将所有的二进制全部串起来,4个二进制位为一组,转化成对应十进制数。

2.根据十进制数值找到Base16编码表里面对应的字符。Base16是4个比特位表示一个字符,所以原始是1个字节(8个比特位)刚好可以分成两组,也就是说原先如果使用ASCII编码后的一个字符,现在转化成两个字符。数据量是原先的2倍。

编码 编码
0 0 8 8
1 1 9 9
2 2 10 A
3 3 11 B
4 4 12 C
5 5 13 D
6 6 14 E
7 7 15 F

Base16编码是一个标准的十六进制字符串(注意是字符串而不是数值),更易被人类和计算机使用,因为它并不包含任何控制字符,以及Base64和Base32中的“=”符号。

Base32编码

base32的编码表是由(A-Z、2-7)32个可见字符构成,“=”符号用作后缀填充。

他的特点是明文超过十个后面就会有很多等号

Base32使用了ASCII编码中可打印的32个字符(大写字母AZ和数字27)对任意字节数据进行编码.Base32将串起来的二进制数据按照5个二进制位分为一组,由于传输数据的单位是字节(即8个二进制位).所以分割之前的二进制位数是40的倍数(40是5和8的最小公倍数).如果不足40位,则在编码后数据补充"=",一个"="相当于一个组(5个二进制位),编码后的数据是原先的8/5倍. Base32编码表

符号 符号 符号 符号
0 A 8 I 16 Q 24 Y
1 B 9 J 17 R 25 Z
2 C 10 K 18 S 26 2
3 D 11 L 19 T 27 3
4 E 12 M 20 U 28 4
5 F 13 N 21 V 29 5
6 G 14 O 22 W 30 6
7 H 15 P 23 X 31 7
填充 =

Base32将任意字符串按照字节进行切分,并将每个字节对应的二进制值(不足8比特高位补0)串联起来,按照5比特一组进行切分,并将每组二进制值转换成十进制来对应32个可打印字符中的一个。

由于数据的二进制传输是按照8比特一组进行(即一个字节),因此Base32按5比特切分的二进制数据必须是40比特的倍数(5和8的最小公倍数)。例如输入单字节字符“%”,它对应的二进制值是“100101”,前面补两个0变成“00100101”(二进制值不足8比特的都要在高位加0直到8比特),从左侧开始按照5比特切分成两组:“00100”和“101”,后一组不足5比特,则在末尾填充0直到5比特,变成“00100”和“10100”,这两组二进制数分别转换成十进制数,通过上述表格即可找到其对应的可打印字符“E”和“U”,但是这里只用到两组共10比特,还差30比特达到40比特,按照5比特一组还需6组,则在末尾填充6个“=”。填充“=”符号的作用是方便一些程序的标准化运行,大多数情况下不添加也无关紧要,而且,在URL中使用时必须去掉“=”符号。

与Base64相比,Base32具有许多优点:

  • • 适合不区分大小写的文件系统,更利于人类口语交流或记忆。

  • • 结果可以用作文件名,因为它不包含路径分隔符 “/”等符号。

  • • 排除了视觉上容易混淆的字符,因此可以准确的人工录入。(例如,RFC4648符号集忽略了数字“1”、“8”和“0”,因为它们可能与字母“I”,“B”和“O”混淆)。

  • • 排除填充符号“=”的结果可以包含在URL中,而不编码任何字符。

Base32也比Base16有优势:

  • • Base32比Base16占用的空间更小。(1000比特数据Base32需要200个字符,而Base16则为250个字符)

Base32的缺点:

  • • Base32比Base64多占用大约20%的空间。因为Base32使用8个ASCII字符去编码原数据中的5个字节数据,而Base64是使用4个ASCII字符去编码原数据中的3个字节数据。

Base64编码

base64的编码表是由(A-Z、a-z、0-9、+、/)64个可见字符构成,“=”符号用作后缀填充。

一般情况下密文尾部都会有两个等号,明文很少的时候则没有

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

为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。

Base64编码表

码值 字符 码值 字符 码值 字符 码值 字符 码值 字符 码值 字符 码值 字符 码值 字符
0 A 8 I 16 Q 24 Y 32 g 40 o 48 w 56 4
1 B 9 J 17 R 25 Z 33 h 41 p 49 x 57 5
2 C 10 K 18 S 26 a 34 i 42 q 50 y 58 6
3 D 11 L 19 T 27 b 35 j 43 r 51 z 59 7
4 E 12 M 20 U 28 c 36 k 44 s 52 0 60 8
5 F 13 N 21 V 29 d 37 l 45 t 53 1 61 9
6 G 14 O 22 W 30 e 38 m 46 u 54 2 62 +
7 H 15 P 23 X 31 f 39 n 47 v 55 3 63 /

Base64使用注意问题

一、Base64和URL传参问题

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

为解决此问题,可采用一种用于URL的改进Base64编码,它在末尾填充’='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。

二、Base64和URL传参问题改善

另有一种用于正则表达式的改进Base64变种,它将“+”和“/”改成了“!”和“-”,因为“+”,“*”以及前面在IRCu中用到的“[”和“]”在正则表达式中都可能具有特殊含义。

此外还有一些变种,它们将“+/”改为“*-”或“.*”(用作编程语言中的标识符名称)或“.-”(用于XML中的Nmtoken)甚至“_:”(用于XML中的Name)。

三、Base64转换后比原有的字符串长1/3

Base64要求把每三个8Bit的字节转换为四个6Bit的字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。

Base58编码

base58的编码表相比base64少了数字0,大写字母I,O,小写字母 l (这个是L),以及符号‘+’和‘/’

它最大的特点是没有等号

Base58是用于比特币(Bitcoin)中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。

相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+“和”/"符号。

比特币的Base58字母表:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

简单的说:Base58一种编码方式,跟十进制,十六进制一样,不过更短更省空间。

Base58的原理是什么?

二进制:0和1

十进制:1到10

十六进制:十进制的基础上加上了A-F 六个字母

Base58可以理解为一种58进制。

Base58包含了阿拉伯数字、小写英文字母,大写英文字母。

但是去掉了一些容易混淆的数字和字母:0(数字0)、O(o的大写字母)、l( L的小写字母)、I(i的大写字母)

Base91编码

base91的密文由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>[email protected][]^_`{|}~”)组成

Base100编码

**Base100编码/解码工具(又名:Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本。**

特点就是一堆Emoji表情

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,!#$%&()*+,./:;<=>[email protected][]^_`{|}~”)组成
不支持中文。
base100: 👟👜👣👣👦📦💳💃👮👦👩👣👛🐥🐨🐩🐪🐫🐬🐭
特征:就是一堆Emoji表情

在线编码

base64

https://www.qqxiuzi.cn/bianma/base64.htm

https://icyberchef.com/#recipe=To_Base64('A-Za-z0-9%2B/%3D')

https://baiy.github.io/Ctool/tool.html#/tool/base64

http://www.hiencode.com/base64.html

base32

https://www.qqxiuzi.cn/bianma/base.php

base16

https://www.qqxiuzi.cn/bianma/base.php?type=16

base58

http://www.atoolbox.net/Tool.php?Id=932

http://www.hiencode.com/base58w.html

base85

http://www.atoolbox.net/Tool.php?Id=934

http://www.hiencode.com/base85.html

base91

http://www.hiencode.com/base91.html

base100

http://www.atoolbox.net/Tool.php?Id=936

Base64:

tool.oschina.net
www.sojson.com
base64.us

Base58:www.metools.info

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

1、MD5

简述:

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

16位值是取的是8~24位。

特征:

有固定长度,一般是32位或者16位

由数字“0-9”和字母“a-f”组成

md5的三个特征:

  1. 1. 确定性:一个原始数据的MD5值是唯一的,同一个原始数据不可能会计算出多个不同的MD5值。

  2. 2. 碰撞性:原始数据与其MD5值并不是一一对应的,有可能多个原始数据计算出来的MD5值是一样的,这就是碰撞。

  3. 3. 不可逆:也就是说如果告诉你一个MD5值,你是无法通过它还原出它的原始数据的,这不是你的技术不够牛,这是由它的算法所决定的。因为根据第4点,一个给定的MD5值是可能对应多个原始数据的,并且理论上讲是可以对应无限多个原始数据,所有无法确定到底是由哪个原始数据产生的。

举例:

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

在线加解密

https://www.cmd5.com/

https://www.somd5.com/

http://www.hiencode.com/hash.html

www.cmd5.com(带批量解密工具)
www.somd5.com
cmd5.la
pmd5.com
www.ttmd5.com(带批量解密工具)

2、SHA1

简述

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

特征:

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

举例:

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

在线加解密

https://tool.oschina.net/encrypt?type=2

http://www.hiencode.com/hash.html

https://baiy.github.io/Ctool/tool.html#/tool/hash

3、HMAC

简述:

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

特征:

和MD5类似,但是有秘钥。

举例:

在线加解密:

http://encode.chahuo.com/

4、NTLM

简述:

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

在线解密:

https://www.jisuan.mobi/p11BbzHum6b3uyJW.html

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类似,

在线解密:

https://www.sojson.com/encrypt_aes.html

Unicode编码

简述:

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

可以说Unicode与HTML实体编码是一个东西

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

举例:

Unicode有以下四种编码方式:

明文:hello,world.

&#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

在线编码:

http://www.mxcz.net/tools/Unicode.aspx

http://www.msxindl.com/tools/unicode16.asp

https://www.sojson.com/unicode.html

https://tool.chinaz.com/tools/unicode.aspx

http://www.hiencode.com/cencode.html

https://baiy.github.io/Ctool/tool.html#/tool/unicode

https://icyberchef.com/#recipe=Text_Encoding_Brute_Force('Encode')

HTML实体编码

简述:

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

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

这么做的目的主要有两个:

1、解决HTML代码编写中的一些问题。例如需要在网页上显示小于号(<)和大于号(>),由于它们是HTML的预留标签,可能会被误解析。这时就需要将小于号和大于号写成字符实体:

小于号这样写:< 或 <

大于号这样写:> 或 >

前面的写法称为实体名称,后面的写法则是实体编号。ISO-8859-1字符集(西欧语言)中两百多个字符设定了实体名称,而对于其它所有字符都可以用实体编号来代替。

2、网页编码采用了特定语言的编码,却需要显示来自其它语言的字符。例如,网页编码采用了西欧语言ISO-8859-1,却要在网页中显示中文,这时必须将中文字符以实体形式写入HTML代码中。

举例:

明文: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;

在线加解密:

https://www.toolzl.com/tools/htmlende.html

https://www.qqxiuzi.cn/bianma/zifushiti.php

Unicode:www.sojson.com
16进制Unicode:www.msxindl.com
HTML字符实体:www.qqxiuzi.cn

Escape、Unescape编码(%u)

简述:

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

Escape/Unescape加密解码/编码解码,又叫%u编码,从以往经验看编码字符串出现有"u",它是unicode编码,那么Escape编码采用是那一种unicode实现形式呢。其实是UTF-16BE模式。这样一来问题非常简单了。 Escape编码/加密,就是字符对应UTF-16 16进制表示方式前面加%u。Unescape解码/解密,就是去掉"%u"后,将16进制字符还原后,由utf-16转码到自己目标字符。如:字符“中”,UTF-16BE是:“6d93”,因此Escape是“%u6d93”,反之也一样!因为目前%字符,常用作URL编码,所以%u这样编码已经逐渐被废弃了!

基本类型只对汉字进行编码,复杂类型是所有字符均可

举例:

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

在线加解密:

http://web.chacuo.net/charsetescape/

URL编码

简述:

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

这两种加密的密文是一样的,不同的是当你用url编码网站时是不会把http进行编码的,而Hex编码则全部转化了

encodeURIComponent() 函数 与 encodeURI() 函数的区别

请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

特征:

编码前面都有%

在线加解密:

http://web.chacuo.net/charseturlencode

Hex编码

简述:

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

特征:

十六进制(Hexadecimal)

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

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

举例:

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

在线加解密:

https://www.107000.com/T-Hex

http://stool.chinaz.com/hex

Hex编码:https://www.107000.com/T-Hex
URL 编码:https://www.sojson.com/encodeurl.html

js专用加密

1、JS颜文字加密

特征:

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

在线加密:

https://utf-8.jp/public/aaencode.html

解密在F12的console中

2、Jother编码

简述:

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

特征:

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

在线解密:

3、JSFuck编码

特征:

与jother很像,只是少了{ }

在线加密:

http://www.jsfuck.com/

解密在F12的console中


Quoted-printable编码

简述:

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

特征:

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

这种编码常用与邮件处理,只能对汉字进行编码,特征是=加两个大写字母或数字组合

举例:

明文:天上掉下了个猪八戒
密文:=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

在线编码:

http://www.mxcz.net/tools/QuotedPrintable.aspx

XXencode

简述:

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

特征:

字符范围是:

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

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

举例:

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

在线加解密:

http://web.chacuo.net/charsetxxencode

UUencode

简述:

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

举例:

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

在线解密&工具

http://web.chacuo.net/charsetxxencode

https://www.qqxiuzi.cn/bianma/uuencode.php

aaencode编码

特征:

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

在线加解密:

http://www.atoolbox.net/Tool.php?Id=703

https://www.qtool.net/decode

https://utf-8.jp/public/aaencode.html

jjencode编码

特征:

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

在线加解密:

http://www.atoolbox.net/Tool.php?Id=704

https://www.qtool.net/decode

brainfuck编码

简述:

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

特征:

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

举例:

明文:hello,world.
密文:+++++ +++++ [->++ +++++ +++<] >++++ .---. +++++ ++..+ ++.<+ +++++ ++[->
----- ---<] >---. <++++ ++++[ ->+++ +++++ <]>++ +++++ ++++. ----- ---.+
++.-- ----. ----- ---.< +++++ ++[-> ----- --<]> ----- .<

在线加解密:

https://www.splitbrain.org/services/ook

https://www.nayuki.io/page/brainfuck-interpreter-javascript

莫尔斯电码

简述:

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

  1. 1. 点(.)

  2. 2. 划(-)

  3. 3. 每个字符间短的停顿(通常用空格表示停顿)

  4. 4. 每个词之间中等的停顿(通常用 / 划分)

  5. 5. 以及句子之间长的停顿

关于摩尔密码 | Morse Code

  • • 摩尔斯电码(Morse alphabet)(又译为摩斯电码)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母、数字和标点符号等。

  • • 由美国人摩尔斯(Samuel Finley Breese Morse)于1837年发明,为摩尔斯电报机的发明(1835年)提供了条件。

  • • 摩尔密码加密的字符只有字符,数字,标点,不区分大小写,支持中文汉字

  • • 中文摩斯加密解密:本工具摩尔密码加密是互联网上唯一一个可以对中文进行摩斯编码的工具。

莫尔斯电码加密列表 | Morse Code List

一、26个字母的莫尔斯电码加密

字符 电码符号 字符 电码符号 字符 电码符号 字符 电码符号
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 ━ ━ ━ ━ .

三、标点符号的莫尔斯电码加密

字符 电码符号 字符 电码符号 字符 电码符号 字符 电码符号
. .━ .━ .━ : ━ ━ ━ ... , ━ ━ ..━ ━ ; ━ .━ .━ .
? ..━ ━ .. = ━ ...━ ' .━ ━ ━ ━ . / ━ ..━ .
! ━ .━ .━ ━ ━ ....━ _ ..━ ━ .━ " .━ ..━ .
( ━ .━ ━ . ) ━ .━ ━ .━ $ ...━ ..━ & . ...
@ .━ ━ .━ .

摩斯密码灯光求救 | Morse Code

  • • 摩斯密码编码简单清晰,二义性小,编码主要是由两个字符表示:"."、"-",一长一短,这在很多情况下应用很多,比如发送求救信号。电影《风声》中就是采用在衣服上缝出摩尔密码,将消息传播出去。

  • • 在利用摩尔密码灯光求救的时候,定义:灯光长亮为"-",灯光短量为".",那么就可以通过手电筒的开关来发送各种信息,例如求救信息。

  • • 如果灯光是按照“短亮 暗 短亮 暗 短亮 暗 长亮 暗 长亮 暗 长亮 暗 短亮 暗 短亮 暗 短亮”这个规律来显示的话那么它就意味是求救信号SOS。

  • • 因为SOS的摩尔编码为:··· --- ··· ,按照上面的规定即可进行灯光编码。这个编码其实非常简单,三短、三长、三短。

  • • 除了灯光之外,利用声音(两种区别的声音)也可以发出求救信号。这种求救方式是我们都应该进行了解的,也许在必要的时候就可以派上用场。

特征:

由 **. - "空格" / **表示。

在线加解密:

http://www.hiencode.com/morse.html

支持中文

https://www.atool99.com/morse.php

社会主义编码

特征:

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

在线加解密:

https://sym233.github.io/core-values-encoder/

http://www.hiencode.com/cvencode.html

与佛论禅

特征:

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

在线工具:

https://www.keyfc.net/bbs/tools/tudoucode.aspx

韩文编码

在线编码

https://www.qqxiuzi.cn/bianma/zhongrihan.php

https://icyberchef.com/#recipe=Text_Encoding_Brute_Force('Encode')

https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=hanwen
웬후ퟳ듳삨뫅뗘뛾튻튻뛾뻅뛾죽룜웟냋뗘쇹룜쯄쇣쇹쯄룜뻅웟웟쾸룜뇘웟죽뛾뻅웟뗘쾸쯄쯄뻅튻폒듳삨뫅

EUC Simplified Chinese (51936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号

Simplified Chinese GBK (936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号

Simplified Chinese GB2312 (20936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号

MAC Simplified Chinese (GB 2312) (10008) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号

Simplified Chinese GB18030 (54936) 旗帜左大括号地二一一二九二三杠七八地六杠四零六四杠九七七细杠必七三二九七地细四四九一右大括号

图片

图片

图片

引用链接

[1] www.qqxiuzi.cn: http://www.qqxiuzi.cn
[2] www.metools.info: http://www.metools.info
[3] www.metools.info: http://www.metools.info
[4] www.metools.info: http://www.metools.info
[5] www.qqxiuzi.cn: http://www.qqxiuzi.cn


本文来自互联网搜索优秀安全博客内容+部分总结提炼,原文出处

图片

原文链接:https://www.cnblogs.com/ruoli-s/p/14206145.html

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月29日04:51:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  CTF常见编码及加解密(超全) http://cn-sec.com/archives/1260462.html