Base64 文本编码器

步 1 / 333%

输入

Base64 可让包含非 ASCII 字符的文本用于只接受可打印 ASCII 的系统。本工具完全在浏览器中运行,依照 RFC 4648 把 UTF-8 文本编码为 Base64,或把 Base64 解码为有效的 UTF-8 文本,并提供 URL 安全字母表和可选填充。非文本二进制数据请使用文件或二进制解码工具。

Base64 文本编码如何工作

  1. 1

    粘贴你的文本

    默认按 UTF-8 解释,每个字符会先变成它的 UTF-8 字节序列。

  2. 2

    选择方向

    把文本编码为 Base64,或把 Base64 解码为文本。

  3. 3

    选择变体

    标准(`A-Z a-z 0-9 + /`)或 URL 安全(`+` 和 `/` 替换为 `-` 和 `_`)。编码时可开关填充(`=`)。

  4. 4

    复制结果

    只在目标格式要求 Base64 或无填充 Base64URL 时使用结果。单纯编码文本并不能创建或验证完整的 JWT 或认证头。

示例

编码单词 café

  1. UTF-8 编码:63 61 66 C3 A9(5 字节;é 在 UTF-8 中是 2 字节)
  2. 分成每 3 字节一组:63 61 66 | C3 A9
  3. 每 3 字节变成 4 个 Base64 字符:Y 2 F m | w 6 k =
  4. 最终:Y2Fmw6k=

URL 安全的 Base64

标准 Base64 使用 +/,而它们在 URL 和文件名中有保留含义:

  • + 在表单式查询解码时可能会变成空格
  • / 用于分隔 URL 路径段

URL 安全的 Base64(RFC 4648 第 5 节)把它们换成 -_。除非关闭填充,否则 = 仍会保留;如果目标格式要求无填充值,请明确关闭填充。

填充

Base64 输出按每 4 个字符一组划分。如果输入长度不是 3 字节的倍数,最后一组会用 = 填充以补足 4 个字符:

输入字节 输出 填充
1 4 ==
2 4 =
3 4 (无)

某些格式会省略填充,例如采用 Base64URL 编码的 JWT 分段。本工具接受带填充和正确省略填充的输入。

常见错误

  • 把 Base64 当作加密。 它不是。任何人都能解码 Base64,它隐藏不了任何东西。
  • 忘记 UTF-8。 把 “café” 按 Latin-1 编码会得到与 UTF-8 不同的字节。除非你知道接收方期望什么,否则坚持使用 UTF-8。
  • 粘贴时带空白。 RFC 4648 解码器默认应拒绝字母表之外的字符。只有在引用格式(如 MIME)允许时,才启用本工具接受 ASCII 空格、制表符、换行符和换页符的选项。

常见问题

不安全。它是编码,不是加密。“aGVsbG8=” 在任何 Base64 解码器中都会解码为 “hello”。如果需要保密,请先加密,再把密文做 Base64 编码用于传输。

Base64 把每 3 个输入字节表示为 4 个输出字符,因此编码后的形式约增长 33%。填充最多再增加两个字符。

Base64URL 用 -_ 取代标准 Base64 的 +/。填充是单独的选项;如果目标格式要求无填充值,请关闭填充。

标准 Base64 作为查询值时应进行百分号编码。Base64URL 会避开 +/;如果目标格式不接受 =,还应关闭填充。

相关工具