Base64编码

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

介绍 Base64 编码

Base64 是一种使用 64 个可打印字符来表示二进制数据的编码方式。

Base64 中的 64 个可打印字符包括大小写字母 a - z、阿拉伯数字 0 - 9这样共有 62 个字符另外两个可打印字符在不同的系统中而不同。RFC 4648 标准中另外两个可打印字符是加号 + 、斜线 /。Base64 使用等号 = 作为填充字符。


技术是为了解决问题而生的Base64 编码的作用是使用 64 个可打印字符来表示二进制数据以便二进制数据在计算机中存储、通过网络传输。

Base64 编码的规则

Base64 编码的规则是

  • 首先将二进制数据中每 “三组 8 个二进制位” 重新分组为 “四组 6 个二进制位”
  • 然后每组的 6 个二进制位用一个十进制数来表示。6 个二进制位可表示的十进制数的范围是 0 - 63
  • 接下来根据 Base64 索引表将每组的十进制数转换成对应的字符即每组可以用一个可打印字符来表示

“Man” 的 Base64 编码结果为 “TWFu”详细原理如下

image-20230123120757169.png


Base64 编码将 3 个字节编码为 4 个字符。如果要编码的字节数不能被 3 整除最后会多出 1 个或 2 个字节那么可以使用下面的方法进行处理

  • 先使用 0 字节值在末尾补足使字节数能够被 3 整除然后再进行 Base64 编码。
  • 在 Base64 编码结果的末尾加上一个或两个等号 =代表补足的字节数。

举例说明最后剩余两个字节待补足

image-20230123121133570.png

举例说明最后剩余一个字节待补足

image-20230123121153663.png

Base64 索引表

RFC 4648 标准的 Base64 索引表

十进制二进制字符十进制二进制字符十进制二进制字符十进制二进制字符
0000000A16010000Q32100000g48110000w
1000001B17010001R33100001h49110001x
2000010C18010010S34100010i50110010y
3000011D19010011T35100011j51110011z
4000100E20010100U36100100k521101000
5000101F21010101V37100101l531101011
6000110G22010110W38100110m541101102
7000111H23010111X39100111n551101113
8001000I24011000Y40101000o561110004
9001001J25011001Z41101001p571110015
10001010K26011010a42101010q581110106
11001011L27011011b43101011r591110117
12001100M28011100c44101100s601111008
13001101N29011101d45101101t611111019
14001110O30011110e46101110u62111110+
15001111P31011111f47101111v63111111/
填充=

image-20230123120641215.png

参考资料

Base64 - 维基百科自由的百科全书 (wikipedia.org)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6