Base64编码

一、Base64由来

ASCII
在上文中我们介绍了ASCII编码。采用的是8bit编码。但是ASCII中一些打印字符、控制字符在一些数据传递协议中是不能被传递的。Base64采用64个打印字符来表示二进制数据。Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息,且具有不可读性,避免人眼可见。

二、Base64编码方式

由于Base64只使用64个字符进行编码,所以我们只需要6bit(2^6=64)就足够表示。
这里写图片描述

三、ASCII转Base64

ASCII采用8bit,Base64采用6bit;8和6的最小公倍数为24,因此3个字符,需要用3个ASCII码表示,用Base64时就需要4个Base64码。因此在用Base64编码时都是三个字符三个字符的转换,当不足时后位补0。同时要注意ASCII使用数字表示字符,而Base64是先用数字表示,在将其转换成对应于Base64的字符。看下图:
这里写图片描述

上图蓝色区域代表字符转ASCII,后再转成二进制;红色区域代表基于转换的二进制,将其拆分成6bit一组再转换成Base64编码。注意Base64编码使用字符表示的。其中绿色区域是最后字符E用一个Base64字符无法表示,在二进制后补0,用两个Base64字符表示。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值