上传文件
  1. base64hub
  2. 其他进制编码
  3. Base64 转 Hex

Base64 转 Hex:查看原始字节

粘贴 Base64,以 hex 形式查看解码后的字节。可选小写或大写、: 或 0x 之类的分隔符,需要便于阅读的转储时,还可以设为每行 16 或 32 字节。

免费 无需注册,不限次数 本地 不上传任何内容 16 或 32 每行字节数,转储清晰易读 更新于 2026年10月27日
输入 0字节 0 B输出 0

在你的浏览器中处理。此页面无法将你的数据发送到任何地方: 我们如何确认

如何将 Base64 转换为 Hex

  1. 把 Base64 粘贴到 输入 · Base64。换行、空格、缺失的 = 填充和 URL 安全字符都可以接受。
  2. 字节显示在 输出 · Hex 中。如果字节符合某种已知格式,状态行的 看起来像 会显示检测到的文件类型。
  3. 在输出下方选择 大小写、分隔符 和 每行字节数。
  4. 点击 复制输出 或 下载 hex。保存字节 会把解码后的字节本身写成文件。

反方向转换请使用方向切换 Hex → Base64 或 Hex 转 Base64。

输出选项

Base64 SGkh/w== 包含四个字节。分隔符 设置决定了它们的写法:

分隔符输出用途
无486921ff与 sha256sum 输出、数据库、URL 中的值对比
空格48 69 21 ff逐字节阅读、hex 编辑器
:48:69:21:ff证书和密钥指纹
0x0x48 0x69 0x21 0xffC、C# 或 Java 常量
\x\x48\x69\x21\xffPython、C 和 shell 中的字符串字面量

大小写 可切换为 48 69 21 FF。每行字节数 设为 16 时,会得到熟悉的转储布局,每行 16 个字节,很容易找到偏移 0x40,或数出文件头的长度。

读懂开头的字节

大多数文件格式都以固定的签名开头,这些签名在 hex 中很容易辨认。下面是几个 Base64 前缀及其解码结果:

Base64 开头Hex格式
iVBORw0KGgo89 50 4e 47 0d 0a 1a 0aPNG
/9j/ff d8 ffJPEG
JVBERi025 50 44 46 2d(%PDF-)PDF
UEsDBA50 4b 03 04(PK)ZIP,以及 DOCX、XLSX、JAR、APK
H4sI1f 8b 08gzip

如果开头的字节与这些都不匹配,它们仍可能是某种意料之外字符集的文本,或者是加密数据,加密数据在 hex 中看起来是均匀随机的。常见 Base64 前缀列表 收录了更多签名。如果数据原来是你想打开的文件,Base64 转文件 可以预览并保存它。

对比摘要和校验和

hex 是校验和工具输出的格式,所以要把请求头或配置文件中的值与你自己的 md5sum 或 sha256sum 结果对比,就得把 Base64 转成 hex:

出现的位置Base64Hex
hello 的 Content-MD5 请求头XUFAKrxLKna5cZ2REBfFkg==5d41402abc4b2a76b9719d911017c592
hello 的 SHA-256LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

integrity="sha384-…" 属性、SHA256: 形式的 SSH 指纹(不带填充的 Base64)以及 JSON 中的二进制密钥也是如此。如果两个值的 hex 不同,它们的字节就不同;如果 hex 一致,Base64 上的差异就只是格式上的,比如填充或 URL 安全字母表。

在代码中将 Base64 转为 Hex

import base64
base64.b64decode("SGkh/w==").hex()        # '486921ff'
base64.b64decode("SGkh/w==").hex(" ")     # '48 69 21 ff'
Buffer.from("SGkh/w==", "base64").toString("hex");   // '486921ff'

在 Python 中,除非传入 validate=True,b64decode 会悄悄丢弃字母表以外的字符,所以 URL 安全的字符串可能被解码成错误的字节而不报错。Node 的 "base64" 解码器两种字母表都接受。详情见 Python 和 Node.js 页面。

常见问题

在 Linux 上怎么把 Base64 解码为 hex?

echo 'SGkh/w==' | base64 -d | xxd -p 会输出 486921ff。xxd -p 每 30 字节换一行;加上 -c 32 可以每行 32 字节,没有安装 xxd 时可以用 od -An -tx1。

为什么我的 hex 里有 ef bf bd?

这三个字节是替换字符 � 的 UTF-8 形式。某个工具先把 Base64 解码成了文本,并替换掉了所有不是有效 UTF-8 的字节。像本页这样直接解码为 hex,就能得到原始字节。

hex 比 Base64 长多少?

大约是 1.5 倍。四个 Base64 字符包含三个字节,需要六个 hex 数字表示。44 个字符的 SHA-256 值会变成 64 个 hex 数字。

支持 Base64URL 和 data URI 吗?

支持。- 和 _ 会按 + 和 / 读取,缺失填充也没关系,data:...;base64, 前缀会被跳过。