宁波网站设计皆选蓉胜网络,网络推广服务开票,济南润滑油网站制作,js网站建设1. Base64是什么#xff1f;
Base64#xff08;基底64#xff09;是一种基于64个可打印字符来表示二进制数据的表示方法。每6个比特为一个单元#xff0c;对应某个可打印字符。3个字节相当于24个比特#xff0c;对应于4个Base64单元#xff0c;即3个字节可由4个可打印字…1. Base64是什么
Base64基底64是一种基于64个可打印字符来表示二进制数据的表示方法。每6个比特为一个单元对应某个可打印字符。3个字节相当于24个比特对应于4个Base64单元即3个字节可由4个可打印字符来表示。在Base64中的可打印字符包括字母A-Z、a-z、数子0-9这样共有62个字符另外两个可打印符号在不同的系统中而不同。 什么是可打印字符为什么要用它来传输8Bit字节码 在回答问题之前我们有必要来思考一下什么情况下需要使用到Base64。Base64一般用于在HTTP协议下传输二进制数据由于HTTP协议是文本协议所以在HTTP协议下传输二进制数据需要将二进制数据转换为字符数据。然而直接转换是不行的因为网络传输只能传输可打印字符。ASCII码的取值范围是[0127]其中[32126]是可打印字符其余是不可打印字符。也就是说网络传输只能传输这95个字符不在这个范围内的字符无法传输。那么该怎么才能传输其他字符呢其中一种方式就是使用Base64。 Base64使用64个可打印字符表示二进制数据的方法。Base64的索引与对应字符的关系如下表所示 可打印字符字母A-Z、a-z、数字0-9共有62个字符加上、/共64个字符实际上还有一个字符来作为后缀。
2. Base64编码的规则
3个字节(文本)变成4个字符Base64每76个字符(字符)加一个换行符。最后的结束符也要处理当所要编码的数据的字节数不是3的整倍数也就是说在分组时最后一组不够3个字节这时在最后一组填充1到2个0字节并在最后编码完成后在结尾添加1到2个号。
3. Base32编码
Base32使用了ASCII编码中可打印的32个字符(大写字母A-Z和数字2-7)对任意字节数据进行编码。Base32将串起来的二进制数据按照5个二进制位分为一组,由于传输数据的单位是字节(即8个二进制位).所以分割之前的二进制位数是40的倍数(40是5和8的最小公倍数).
如果不足40位,则在编码后数据补充“,一个”相当于一个组(5个二进制位),编码后的数据是原先的倍.有以下几种填充情况 • 文本的长度(bit)是40的整数倍不需要填充 • 多出来8bit需要填充32bit的0,使用了填充的前2个bit,剩下的30bit需要用6个‘’替代 • 多出来16bit需要填充24bit的0,使用了填充的前4个bit,剩下的20bit需要用4个‘’替代 • 多出来24bit需要填充16bit的0,使用了填充的前1个bit,剩下的15bit需要用3个‘’替代 • 多出来32bit需要填充8bit的0,使用了填充的前3个bit,剩下的5bit需要用1个‘’替代
4. Base16编码
Base16编码使用了ASCII编码中可打印的字符(数字0-9和字母A-F)对应的二进制字节数据进行编码。 根据十进制数值找到Base16编码表里面对应的字符。Base16是4个比特位表示一个字符,所以原始是1个字节(8个比特位)刚好可以分成两组,也就是说原先如果使用ASCII编码后的一个字符,现在转化成两个字符.数据量是原先的2倍. 每个字节都编码为2个字节不存在填充情况