Base64解码工具
使用我们的Base64解码工具将Base64输入解码为字符串,方便数据还原。

Base64解码工具是一款免费工具,可将经过Base64编码的内容还原为原始数据。
什么是Base64编码,为什么要使用它?
Base64使用一组有限的可打印文本字符来表示二进制数据。之所以需要这种编码,是因为有些系统虽然能安全传输文本,却无法可靠处理任意字节。
标准Base64使用大写字母、小写字母、数字、加号和正斜杠,末尾还可能出现等号作为填充字符。编码后数据会变大,因为每三个输入字节会转换成四个Base64字符。
Base64是编码方式,不是加密方式。任何拿到编码值的人都可以解码,无需密码或密钥,因此它不能提供保密性。不要把Base64值当作安全存放密码、API密钥或个人信息的地方。

如何使用Base64解码工具?
将Base64值粘贴到工具中并执行解码,然后在Base64 解码字段中查看内容。服务器使用PHP的base64_decode函数完成转换。
输入内容会通过HTTPS发送到服务器,但不会被存储。解码在服务器端完成,并非只在浏览器中处理。因此,除非你有权将敏感材料发送给外部服务,否则请勿提交此类内容。
Base64保留的是字节,而不是数据含义。数字、空格和标点符号都只是原始字节序列的一部分。带重音符号的字母和非拉丁文字也可以编码,但解码后的字节必须使用正确的字符编码来解释。对于现代网页内容,通常应使用UTF-8。

示例与格式选择
下面是一个简单的标准Base64示例:
输入:SGVsbG8=
输出:Hello
末尾的等号是填充字符,用来补齐由四个字符组成的Base64块,并不代表解码结果中多出了一个字符。
Base64常见的字母表变体有两种:
- 标准Base64:使用+和/,常见于MIME电子邮件、数据URI以及许多基于JSON的API。
- Base64url:改用-和_,适用于URL、查询参数和令牌,因为在这些场景中使用+和/可能不方便。填充字符通常会被省略。
请根据生成该值的系统选择对应变体。如果不先转换字母表,标准解码器可能错误解析或拒绝Base64url输入。如需执行相反操作,请使用Base64编码工具。对于经过编码的图片数据,使用Base64解码为图片通常比直接以文本形式查看原始二进制内容更合适。

实际中会在哪里遇到Base64?
当二进制数据需要通过面向文本的格式传输时,经常会用到Base64。编码值可能单独出现,也可能只是较大文档中的一部分。
- 数据URI可将小型图片、字体或其他资源嵌入HTML和CSS,前面通常带有data:image/png;base64,之类的前缀。
- JSON本身没有原生的二进制值类型,因此JSON载荷有时会用Base64字符串承载文件、证书或密码学材料。
- MIME电子邮件使用Base64处理附件,以及无法作为纯文本安全传输的邮件部分。
- 查询字符串和Web令牌可能使用Base64url,以避开在URL中具有特殊含义的字符。
- 配置文件和环境变量有时也包含Base64内容,因为相关系统要求使用可打印文本。
看起来像编码内容的国际化域名需要使用另一种解码器。以xn--开头的域名标签使用的是Punycode,而不是Base64。将其交给Base64解码器,无法还原出预期的Unicode域名。
为什么Base64解码会失败或出现乱码?
Base64解码失败或输出无法阅读,通常是因为输入使用了错误的变体、内容不完整、被重复编码,或者它表示的是二进制数据而不是文本。
- 字母表不匹配:把包含-或_的Base64url输入当作标准Base64处理,或者反过来处理。
- 填充缺失或损坏:会导致最后一个编码块不完整。有些解码器允许省略填充,但如果字符数除以四后余一,就无法构成有效的Base64。
- 重复编码:第一次解码后的结果看起来仍像Base64字符串。如果来源有意进行了两次编码,可能需要再次解码。
- 二进制输出:图片、PDF、压缩包和加密字节的解码结果本来就是二进制数据。将这些字节作为文本打开,就会看到各种符号或替代字符。
- 文本编码错误:会使有效的解码字节显示异常。例如,把UTF-8数据按Windows-1252解释,可能会让带重音符号的字符变成乱码。
- 前后混入其他内容:可能包括数据URI前缀、引号、JSON转义字符或URL百分号编码,这些内容应先去除。
PHP的base64_decode默认采用非严格模式,可以丢弃标准字母表之外的字符。这能兼容MIME格式输入中的换行符,但也可能掩盖复制错误,而不是明确报告问题。如果输出不符合预期,请对照来源格式,并逐个字符检查原始值。
常见问题
Base64区分大小写吗?
区分。Base64字母表中的大写字母和小写字母代表不同的值。为了让格式看起来统一而更改大小写,会破坏解码后的字节。
可以用Base64解码工具解码JWT吗?
JSON Web Token通常包含多个以句点分隔的Base64url编码部分。每一部分都必须单独处理,省略的填充字符也可能需要补回。读取载荷并不能验证令牌签名,也无法证明其中的内容真实有效。
Base64解码后可能包含病毒或恶意文件吗?
可能。Base64可以表示任何字节,包括可执行文件、脚本或恶意文档。解码本身不会运行这些内容,但保存或打开未知结果可能存在风险。处理二进制输出前,请确认预期的文件类型及其来源。
为什么解码结果中会有空字符?
空字节可能出现在二进制格式中,也可能来自以UTF-16编码的文本,其中许多拉丁字符会与一个零字节配对。如果来源声称内容是文本,请检查其字符编码,不要直接删除空字符,因为这样可能损坏数据。
Base64有固定的文件扩展名吗?
没有。Base64是一种数据表示方式,而不是文件格式,因此没有规定必须使用哪种扩展名。解码后的字节才决定结果是PNG、PDF、ZIP压缩包、文本文件还是其他类型。
最后检查
确认你只复制了编码值本身,判断它使用的是标准Base64还是Base64url,并保留原始大小写。如果结果无法阅读,请检查它是否应该作为文件打开,而不是显示成文本。即使某个值成功解码,也不要因此认定它可信或具有保密性。