🔗 Base64URL 编码器

编码和解码 Base64URL,URL 安全的 Base64 变体。使用 - 和 _ 替代 + 和 /,无填充。

关于 Base64URL

Base64URL 是 RFC 4648 定义的 URL 安全 Base64 变体。它将字符 +/ 替换为 -(连字符)和 _(下划线),使编码后的输出可以安全地用于 URL、文件名和查询参数,无需额外转义。它还省略了 = 填充字符。本工具完全在浏览器中运行——不会上传任何数据。

工作原理

  • 编码 —— 输入先进行 UTF-8 编码,然后使用浏览器原生 btoa 进行 Base64 编码。结果中 + 替换为 -/ 替换为 _,并移除尾部所有 = 填充。
  • 解码 —— 输入中 - 还原为 +_ 还原为 /,重新添加填充使长度为 4 的倍数,然后用 atob 解码回 UTF-8 字符串。
  • 字母表为 A-Z a-z 0-9 - _(64 个字符),无填充。
  • Base64URL 广泛用于 JWT 令牌、data URI 和 URL 安全标识符。

使用场景

  • 编码 JWT(JSON Web Token)的头部和载荷段。
  • 在 URL、查询字符串或片段中传递二进制数据,无需转义。
  • 从二进制或文本内容创建 URL 安全的文件名。
  • +/ 有特殊含义的环境中交换数据。

常见问题

Base64 和 Base64URL 有什么区别? Base64 使用 +/= 填充,这些字符在 URL 中不安全。Base64URL 将它们替换为 -_ 并移除填充,使输出可以直接放入 URL。

Base64URL 可逆吗? 可以。每个 Base64URL 字符串都可以解码回原始字节。填充是可选的,解码时会自动重新添加。

为什么要移除填充? 填充(=)在 URL 中必须进行百分号编码,这违背了 URL 安全编码的目的。当长度可从上下文得知时,RFC 4648 允许省略填充。

这个工具会上传我的文本吗? 不会。所有编码和解码都在本地浏览器中完成。