ByteCompress

Base64解码器

将Base64编码的字符串解码回其原始的纯文本或二进制表示。支持标准RFC 4648和URL安全的Base64字母表,包括JWT令牌。

0 chars
FreeClient-sideNo signup

Base64字符串在设计上是不透明的--SGVsbG8sIFdvcmxkIQ==在解码回Hello, World!之前是没有意义的。根据RFC 4648定义,Base64将每3个输入字节编码为4个输出字符,增加大约33%的开销。此解码器使用浏览器的原生atob()TextDecoder API反转这一过程。它支持标准Base64和在JWT和OAuth令牌中使用的URL安全变体(-_代替+/)。没有任何内容被上传到任何服务器。

如何解码Base64

  1. 将您的Base64编码字符串粘贴到输入框中。
  2. 选择标准URL安全模式,以匹配数据的原始编码方式。
  3. 解码后的纯文本会立即出现在输出面板中。
  4. 点击复制以复制结果。

Base64解码的工作原理

解码过程

解码正好是编码的反向操作。每个Base64字符都通过字母表表映射回其6位值。四个连续字符(24位)重构三个字节。浏览器的atob()函数原生处理标准Base64。对于URL安全的Base64,-_在解码前会被转换回+/。然后,将得到的UTF-8字节序列解码为Unicode字符串,使用TextDecoder

处理缺失的填充

标准Base64需要=填充,以使字符串长度成为4的倍数。JWT和OAuth令牌去掉填充以减少大小。此解码器会根据字符串长度自动计算并添加所需的填充。如果字符串长度模4为2,则需要一个=;如果为3,则需要两个=字符。

示例

输入(标准Base64)

SGVsbG8sIFdvcmxkIQ==

输出

Hello, World!

常见用例

  • JWT令牌检查 - 解码头部和有效负载部分,以便在没有库的情况下读取声明
  • HTTP基本认证 - 解码Authorization: Basic dXNlcjpwYXNz头以验证嵌入的凭据
  • 数据URI检查 - 解码data:image/png;base64,... URI的Base64部分
  • API响应调试 - 一些API在JSON响应中Base64编码二进制内容

最佳实践

  • 选择正确的模式(标准与URL安全)--使用错误的模式会产生乱码输出
  • 对于JWT令牌,仅解码头部(第一部分)和有效负载(第二部分);第三部分是加密签名,而不是编码文本
  • 如果输出是无法读取的字符,则源数据是二进制(图像、PDF等),而不是文本
  • Base64解码不是安全检查--任何人都可以解码它

要将文本编码回Base64,请使用Base64编码器。对于URL编码的数据,请使用URL解码器。要完全检查JWT,请选择URL安全模式单独解码前两个用点分隔的部分。

常见问题

我如何使用此工具解码JWT令牌?

JWT由三个部分组成,用点分隔:header.payload.signature。复制头部(第一部分)或有效负载(第二部分),选择URL安全模式,然后将其粘贴到解码器中。输出是包含算法(头部)或声明(有效负载)的JSON对象。请勿解码签名--它是一个加密哈希,而不是Base64编码的JSON字符串。

为什么我的解码输出显示奇怪的字符?

这可能有三种情况:(1)原始数据是二进制(图像、PDF、zip)而不是文本;(2)您选择了错误的模式--尝试在标准和URL安全之间切换;(3)原始文本使用了UTF-8以外的字符集进行编码。首先尝试切换模式。如果输出仍然无法读取,源数据可能是二进制的。

解码时需要填充字符(==)吗?

标准Base64需要填充以使字符串长度成为4的倍数。此解码器会自动添加缺失的填充,这对于去掉尾部=字符的JWT和OAuth令牌非常重要。按原样粘贴字符串,解码器会自动处理填充。

在这里解码时我的敏感数据安全吗?

是的。解码完全在您的浏览器中运行,使用原生atob()和TextDecoder API。您粘贴的令牌、凭据和私密数据从未发送到任何服务器,永远不会被记录或存储。在解码时打开浏览器的网络标签,您将看到没有外发请求。

标准Base64和URL安全Base64有什么区别?

标准Base64(RFC 4648 §4)使用+和/。URL安全的Base64(RFC 4648 §5)用-和替换它们,以避免在URL、文件名和HTTP头中发生冲突。JWT、OAuth令牌和PKCE代码验证器都使用URL安全的Base64。如果您的字符串包含-或,请选择URL安全模式。