Base64编码

Base64编码是将任意二进制数据转换为可打印的ASCII字符。

从8位到6位

它是将一个8位字节序列拆散为6位,并为每个6位片段分配一个字符(2^6=64,推之Base64字符集为64个以内,实际65个字符)。Base64的码表为:

Encoding Img

来个实例,下图以中文编码两个字符(utf-8格式)为例:

Encoding Img

可以在Base64 Decode and Encode - Online上验证一下结果。

补码

Base64编码是将二进制截成每6位一个单位,会有二进制序列不能正好平均分成6位块的情况,这时要在序列末尾填充零位,补够总位数是6*8的最小公倍数,任何完全填充的6位组由特殊的第65个符号=表示。比如ASCII码的字符a

Encoding Img

用途

Base64编码是对二进制序列为操作对象,那对于任意的二进制序列都可以编码,如文件。 在网上搜集了一些Base64编码应用:

  • CSS中url属性:适用于小图片,减少HTTP请求数。
  • 早期电子邮件中
  • 简单加密:防君子不防小人的加密方式
  • HTTP基本认证
  • 文件入库:将文件的二进制流转换成文本存入数据库

实现

JavaScript实现

在线工具 ...

more ...