字符编码之Base64/32/16编码

来源:互联网 发布:移动网络玩游戏卡吗 编辑:程序博客网 时间:2024/06/05 06:40

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编码映射表:



1 0