Ascii对照表
Ascii编码
Base64编码
标准Base64的码表如下:
为了适应网络传输,有些地方将 +/
字符 替换成 -_
字符(现实中还存在许多为适应不同场景,自定义各种可见字符来代替+/
)。
填充
base64编码时将ascii字符串每3个一组编码成4个base64字符,当最后的ascii字符不足3个时,可以填充特定位(0值)来促成编码,同时得到的base64字符串末尾补上=
字符。这个=字符只可能出现在末尾,出现的时候只可能为一个或者二个。例如:
Base32编码
Base32编码是一种将二进制数据转换为文本格式的编码方式。它使用32个可打印字符(包括字母A-Z和数字2-7),这些字符不会在数据传输过程中引起混淆,并且可以方便地由人类使用和由计算机处理。Base32编码的目的是在存储或传输系统中编码不受限制的二进制文件,只允许某种形式的数据(如纯文本)。
- 数据分组:将输入数据按照每5个字节为一组进行处理。
- 二进制转换:将每个字节的二进制值(不足8比特高位补0)串联起来,然后按照5比特一组进行切分。
- 查找索引表:将每组二进制值转换成十进制数,通过查找Base32索引表获取对应的可打印字符。
- 填充:如果数据的总位数不是40的倍数,使用
“=”
字符进行填充,确保编码后的字符串长度是8的倍数。
RFC4648编码字母表如下:
当然还有很多变种,比如使用了Crockford的Base32。该字母表不包括字母I,L,O和U,以避免混淆和滥用。这32个字符按顺序是:
|
|
GUID/UUID/CUID/ULID等随机数编码方案
参考阅读:
https://zhuanlan.zhihu.com/p/712731404
(完)