很多初学者会把 Base64 当成加密:看到一串看不懂的字符,就觉得"加密了"。这是最常见的误解——Base64 只是编码,任何人拿到结果都能直接还原,它不提供任何保密性。

Base64 的原理

Base64 把每 3 个字节(24 位)拆成 4 组 6 位,每组映射到 64 个可打印字符(A-Z、a-z、0-9、+、/),不足的部分用 = 补位。因为 3 字节变 4 字符,编码后的体积大约增加 33%。

hello  →  aGVsbG8=
中文   →  5Lit5paH

什么时候用 Base64

  • 邮件附件与二进制数据的文本化传输
  • URL 参数里传递二进制或非 ASCII 内容
  • 把图片内嵌进 HTML/CSS(data:image/png;base64,...)
  • 接口里传递字节流(如文件内容、加密后的密文)

Base64 与加密的本质区别

编码是可逆的、公开的规则,目的是"让数据换一种表示形式";加密需要密钥,目的是"让没有密钥的人无法读取"。判断标准很简单:不需要任何秘密信息就能还原的,一定是编码。需要真正保密时,请用 AES 等加密算法。

Q:Base64 解码乱码怎么办?
确认输入是完整合法的 Base64 字符串(只含 A-Za-z0-9+/=),并在「解码」模式下操作;如果原文是中文,解码时需要按 UTF-8 处理。
Q:URL 安全模式是什么?
标准 Base64 里的 + 和 / 在 URL 中会被转义,URL 安全模式把它们替换为 - 和 _,避免链接被破坏。
提示

看到 data:image/png;base64, 开头的图片数据,把逗号后的部分粘贴到「图片转 Base64」工具即可还原成图片。