Base64 Files
Base64 · Hex · 字节分析

Base64 转 Hex

将 Base64 或 Base64URL 解码为十六进制字符串。支持三种输出格式,显示精确字节数,适合加密调试、签名验证和底层数据分析。

十六进制输出

输出格式说明

三种格式包含相同字节数据,仅呈现方式不同。

纯 Hex
e3b0c44298fc1c14

连续小写字符串,可直接传给 OpenSSL、hashlib 等命令行工具。

空格分隔
e3 b0 c4 42 98 fc 1c 14

每字节用空格隔开,适合人工逐字节比对或写入文档注释。

0x 格式
0xe3, 0xb0, 0xc4, 0x42

带 0x 前缀和逗号,可直接粘贴进 C 数组、Go slice 或 JS Uint8Array。

等价的命令行操作

Linux / macOS

echo "SGVsbG8=" | base64 -d | xxd -p

OpenSSL

echo "SGVsbG8=" | openssl base64 -d | xxd -p

Python 3

import base64
base64.b64decode("SGVsbG8=").hex()

Node.js

Buffer.from("SGVsbG8=", "base64").toString("hex")

Go

b, _ := base64.StdEncoding.DecodeString("SGVsbG8=")
fmt.Sprintf("%x", b)

常见问题

为什么要把 Base64 转换为 Hex?

在加密、签名验证、网络协议分析等场景中,原始字节以十六进制表示更直观。例如,API 返回的 HMAC-SHA256 Base64 签名转为 Hex 后,可以与 OpenSSL 命令行或 Wireshark 的输出直接比对。

什么是 Base64URL,工具如何处理它?

Base64URL 将标准 Base64 中的 + 替换为 -,/ 替换为 _,并去除末尾填充 =,用于 JWT 和 URL 参数。工具会自动检测 - 和 _ 字符,将其还原为标准 Base64 后再解码,无需手动转换。

三种输出格式有什么区别?

纯 Hex 输出连续小写字符串(e3b0c4…),适合程序处理;空格分隔(e3 b0 c4)方便人眼阅读和比对;0x 格式(0xe3, 0xb0, 0xc4)可直接粘贴到 C、Go 或 JavaScript 的字节数组定义中。

转换后的 Hex 可以直接用于 OpenSSL 吗?

可以。命令 echo "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" | base64 -d | xxd -p 会输出纯 Hex 字符串,与本工具的「纯 Hex」输出完全一致。

工具支持 Data URL 输入吗?

支持。如果粘贴 data:image/png;base64,iVBOR… 格式的 Data URL,工具会自动去除前缀并提取 MIME 类型,然后解码为 Hex 字节。

大文件的 Base64 转换会很慢吗?

工具使用分块处理避免栈溢出,在现代浏览器中处理 10 MB 以内的 Base64 通常在毫秒内完成。超大文件建议使用命令行工具(base64 -d | xxd)获得更好性能。