返回学习中心

Base64原理

什么是Base64?

Base64是一种基于64个可打印字符来表示二进制数据的编码方式。它最初用于在电子邮件中传输二进制数据,后来广泛应用于Web开发中的数据URI、API数据传输等场景。

Base64字符集

A-Z (26) + a-z (26) + 0-9 (10) + + (1) + / (1) = 64
索引 0-25: A-Z
索引 26-51: a-z
索引 52-61: 0-9
索引 62: +
索引 63: /
索引 64 (填充): =

编码过程

以字符串 "Man" 为例:

  1. 转换为ASCII: M=77, a=97, n=110
  2. 转为二进制: 01001101 01100001 01101110
  3. 每6位分组: 010011 010110 000101 101110
  4. 转为十进制: 19, 22, 5, 46
  5. 查表转换: T, W, F, u
结果: TWFu

填充机制

当要编码的字节数不是3的倍数时,需要进行填充:

示例 "a": "a" → 8 bits → 4 groups → YQ==
2 = at end
示例 "ab": "ab" → 16 bits → 4 groups → YWI=
1 = at end
示例 "abc": "abc" → 24 bits → 4 groups → YWJj
No padding

为什么是64?

选择64个字符是因为2的6次方等于64,每6个二进制位可以表示一个Base64字符。而每3个字节(24位)刚好可以转换成4个Base64字符,转换效率较高。同时这64个字符都是不可逆的、安全传输的字符,适合在不同系统间传输。

上一课下一课常见场景