Skip to main content

Base64 的定义和使用

一、Base64 的定义

1、什么是 Base64

Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。

Base64 是为了解决各系统以及传输协议中二进制不兼容的问题而生的,它可以认为是一种将 byte 数组编码为字符串的方法,而且编码出的字符串只包含 ASCII 基础字符。

例如字符串 Leophen 对应的 Base64 为 TGVvcGhlbg==。其中 = 是填充符。

注意 Base64 不是加密算法,其仅仅是一种编码方式,算法也是公开的,所以不能依赖它进行加密。加密要使用专门的对称或非对称加密算法。

点击打开 Base64 转换器

2、为什么叫 Base64

因为它是基于 (Base)64 个字符的一种编码方式。使用其编码后的文本只包含 64 个 ASCII码 字符(偶尔加一个填充字符=)

由于 2⁶ = 64,所以每 6 个比特为一个单元,对应某个可打印字符。3 个字节有 24 个比特,对应于 4 个 base64 单元,即 3 个字节可由 4 个可打印字符来表示。相应的转换过程如下图所示:

Base64 常用于在处理文本数据的场合,表示、传输、存储一些二进制数据,包括 MIME 的电子邮件及 XML 的一些复杂数据。

Base64 使用到的 64 个字符:

  • A-Z 26个
  • a-z 26个
  • 0-9 10个
  • + 1个
  • / 1个

下图是 Base64 码表,可以看到从 0 到 63 的每个数字都对应一个上面的一个字符:

二、获取 base64 图片大小

const getBase64Size = base64 => {
if (base64) {
base64 = base64.split(',')[1].split('=')[0]
const strLength = base64.length
const fileLength = strLength - (strLength / 8) * 2
return Math.floor(fileLength)
} else {
return null
}
}