base64、base32、base16分别编码转化8位字节为6位、5位、4位。
base64
所谓Base64,就是说选出64个字符----小写字母a-z、大写字母A-Z、数字0-9、符号"+"、"/"(再加上作为垫字的"=",实际上是65个字符)——作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
Base64编码映射表:
举个例子(base64):
源文本:T h e
对应ascii码:84 104 101
8位binary:01010100 01101000 0110010
16位binary:010101 000110 100001 100101
高位补0:000010101 00000110 00100001 00100101
对应ascii码:21 6 33 37
查表:V G h l
base32
同理Base32编码将二进制文件转换成由32个ASCII字符组成的文本。
Base32编码映射表:
base16
Base16编码则将二进制文件转换成由16个字符组成的文本。
Base16编码映射表: