Base64 转 Hex
将 Base64 或 Base64URL 解码为十六进制字符串。支持三种输出格式,显示精确字节数,适合加密调试、签名验证和底层数据分析。
十六进制输出
输出格式说明
三种格式包含相同字节数据,仅呈现方式不同。
e3b0c44298fc1c14连续小写字符串,可直接传给 OpenSSL、hashlib 等命令行工具。
e3 b0 c4 42 98 fc 1c 14每字节用空格隔开,适合人工逐字节比对或写入文档注释。
0xe3, 0xb0, 0xc4, 0x42带 0x 前缀和逗号,可直接粘贴进 C 数组、Go slice 或 JS Uint8Array。
等价的命令行操作
Linux / macOS
echo "SGVsbG8=" | base64 -d | xxd -pOpenSSL
echo "SGVsbG8=" | openssl base64 -d | xxd -pPython 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)获得更好性能。