Base64 编码解码原理

在处理二进制文件、图片或加密密钥时,常会碰到一种看似“奇怪”的字符序列——Base64。它并不是随意挑选的字符,而是通过严格的位映射,把每三个字节的二进制流压缩成四个可打印字符,从而兼容传统的文本传输协议。

位操作的核心逻辑

Base64 采用 6 位一组的划分方式:原始数据先以 8 位为单位读取,连续三字节(共 24 位)被切割成四段,每段恰好 6 位。随后,这四段的数值作为索引,映射到字母表「A‑Z、a‑z、0‑9、+、/」上。若原始字节数不是 3 的整数倍,末尾会补 0 并使用「=」填充,以保证输出长度始终是 4 的倍数。

  • 读取 3 个字节 → 24 位二进制。
  • 将 24 位分割为 4 × 6 位。
  • 每 6 位转为十进制索引,查表得到对应字符。
  • 不足 3 字节时,用 0 填充并在末尾加「=」。
# Python 示例:将 b'Hi' 编码为 Base64
import base64
data = b'Hi'
encoded = base64.b64encode(data).decode()
print(encoded)  # 输出: SGk=

解码的逆向过程

解码时,先把每个 Base64 字符逆向映射回 6 位二进制块,拼接后重新按 8 位划分。若遇到「=」填充符,则相应的 6 位全为 0,最终在恢复原始字节流时被截除。整个过程恰好是编码的镜像,确保信息不丢失。

“Base64 并不压缩数据,它的目标是让二进制内容在只能传输文本的通道里保持原样。”

了解了这些底层细节,面对任何需要“可视化”二进制的场景,都能快速判断是否该把数据塞进 Base64 的“盒子”。

文章版权归作者所有,未经允许请勿转载。

参与讨论

0 条评论
通知图标

正在阅读:Base64 编码解码原理