1.Base16
Base16编码使用16个ASCII可打印字符(数字0-9和字母A-F)对任意字节数据进行编码。
Base16又称 HEX (十六进制),是不区分大小写的十六进制编码标准。
Base16先获取输入字符串每个字节的二进制值(不足8比特在高位补0),然后将其串联进来,再按照4比特一组进行切分,将每组二进制数分别转换成十进制。
值 | 编码 | 值 | 编码 |
---|---|---|---|
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 |
例:编码前:这是一个例子
编码后:E8BF99E698AFE4B880E4B8AAE4BE8BE5AD90
2.Base32
Base32使用了ASCII编码中可打印的32个字符(大写字母A~Z和数字2~7)对任意字节数据进行编码.
Base32将任意字符串按照字节进行切分,并将每个字节对应的二进制值(单字符的二进制编码若不足8比特高位补0)串联起来,按照5比特一组进行切分,并将每组二进制值转换成十进制来对应32个可打印字符中的一个。
当要编码数据少于 40 位时, 在右侧填充二进制 0 值, 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 | |||
填充 | = |
例:编码前:这是一个例子
编码后:5C7ZTZUYV7SLRAHEXCVOJPUL4WWZA===
3.Base64
Base64编码是使用64个可打印ASCII字符(A-Z、a-z、0-9、+、/)将任意字节序列数据编码成ASCII字符串,另有“=”符号用作后缀用途。
Base64将输入字符串按字节切分,取得每个字节对应的二进制值(若不足8比特则高位补0),然后将这些二进制数值串联起来,再按照6比特一组进行切分(因为2^6=64),最后一组若不足6比特则末尾补0。将每组二进制值转换成十进制,然后在下述表格中找到对应的符号并串联起来就是Base64编码结果。
Base64 以 4 字符存储 3 字节二进制数据,因此长度增加 1/3。
数值 | 字符 | 数值 | 字符 | 数值 | 字符 | 数值 | 字符 | |||
---|---|---|---|---|---|---|---|---|---|---|
0 | A | 16 | Q | 32 | g | 48 | w | |||
1 | B | 17 | R | 33 | h | 49 | x | |||
2 | C | 18 | S | 34 | i | 50 | y | |||
3 | D | 19 | T | 35 | j | 51 | z | |||
4 | E | 20 | U | 36 | k | 52 | 0 | |||
5 | F | 21 | V | 37 | l | 53 | 1 | |||
6 | G | 22 | W | 38 | m | 54 | 2 | |||
7 | H | 23 | X | 39 | n | 55 | 3 | |||
8 | I | 24 | Y | 40 | o | 56 | 4 | |||
9 | J | 25 | Z | 41 | p | 57 | 5 | |||
10 | K | 26 | a | 42 | q | 58 | 6 | |||
11 | L | 27 | b | 43 | r | 59 | 7 | |||
12 | M | 28 | c | 44 | s | 60 | 8 | |||
13 | N | 29 | d | 45 | t | 61 | 9 | |||
14 | O | 30 | e | 46 | u | 62 | + | |||
15 | P | 31 | f | 47 | v | 63 | / |
例:编码前:这是一个例子
编码后:6L+Z5piv5LiA5Liq5L6L5a2Q
4.Base58
Base58是用于比特币(Bitcoin)中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。
相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号。
比特币的Base58字母表:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
例:编码前:这是一个例子
编码后:aDV66x6o3S93RaW59Dq5ZbG4A
5.Base62
Base62使用了62个字符编码,包括0-9,a-z,A-Z。
例:编码前:这是一个例子
编码后:UxIZABUpAxEZUhIxw1UhIxEFUhIVwJUlERA1
6.Base85
Base85是一种类似于Base64的二进制文本编码形式,通过使用五个ASCII字符来表示四个字节的二进制数据。例如,它用于将图像嵌入到Adobe PDF文件中。
Base85 包含下列字符:
$%()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~
例:编码前:这是一个例子
编码后:keEPJR'5S\JE45?jM$Q6XcN
7.Base91
顾名思义,Base91需要91个字符来表示ASCII编码的二进制数据。
Base91 包含下列字符:
!"#$%&()*+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~
例:编码前:这是一个例子
编码后:*~v6uRhaugfz5el@Dh!q&LB
8.Base92
Base92 是用 92 个可打印字符表示 8 位二进制数据 (含无法显示 打印字符) 的编码方式。
Base92 包含下列字符:
!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefghijklmnopqrstuvwxyz{|}~
例:编码前:这是一个例子
编码后:toxRX<@w<U"[27@\f!Mpc*
9.Base94
Base94 是用 94 个可打印字符表示 8 位二进制数据 (含无法显示 打印字符) 的编码方式。
Base94 包含下列字符:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
10.Base100
Base100编码/解码工具(又名:Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本。
例:编码前:这是一个例子
编码后:📟💶💐📝💏💦📛💯👷📛💯💡📛💵💂📜💤💇
11.Base128
Base128 是用 128 个字符表示 8 位二进制数据的编码方式。
Base128 包含下列字符:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\xb5\xb6\xb7\xbc\xbd\xbe\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff