一、常见编码
最常见的机器编码就是ASCII编码,ASCII编码大致可以分为二部分
第一部分:ASCII非打印控制字符(0~31)
第二部分:ASCII打印字符(32~127)
编码表如下图所示:
Base编码,一类编码的统称,如Base16、Base32、Base 64,这类编码方式大都是为了让数据编码到指定的码表中,用来表示、传输、存储各类二进制编码。
1. Base 16编码
将二进制文本转换成由以下16个字符组成的文本:
0123456789ABCDEF
例题:
666c61677b6261736531365f656e636f64655f7d
2. Base 32编码
将原数转换成8为二进制串,转换后使用A-Z、2-7
三十二个字符和填充符=
编码。
如原文a先转换成:
011000010110001001100011
每次取8组,每组只需要5个字节,不够则填充0,同时填充=:
01100 00101 10001 00110 00110
得出来的数不是8组的倍数,所以末尾要补充0:
01100 00101 10001 00110 00110 00000 00000 00000
最后三组0,是填充字符,要转化成=
,
最终编码:
MFRGG===
例题:
MZWGCZ33MRXV66LPOVPWW3TPO5PWEYLTMUZTEX3FNZRW6ZDFPU======
3. Base 64编码
原理和base32一样,将原数转换成8为二进制串,每次取4组,六个比特位按表转换为字符,不够则填充0,同时填充=。
例题:
ZmxhZ3tkb195b3Vfa25vd19iYXNlNjRfZW5jb2RlfQ==
4. Base64 URLSafe
传统base64中+/
会被url转义,因此产生了一种新的编码方式,用-_
代替传统base64中的
+/
两个字符。
例题:
ZmxhZ3t-dXJsfnNhZmV-ZW5jb2RlfQ==
5. Base85 编码
用5个ASCII字符来表示4个字节,将4个二进制数组成一个32位的数,让后将其转换成85进制,最后每一位对应的值加32转换为字符。
例如原字符sure
变成二进制:
01110011011101010111001001100101
通过转换成32位,得到:
1937076937
转换为85进制得到: