logo
GeekFormat

Base64-Hex 互转

Hex 输入
0 字符

Base64与十六进制(Hex)双向在线互转工具,支持Hex字节序列转Base64编码、Base64解码为Hex字符串。自动识别并处理空格、换行符分隔的Hex输入,自动去除0x前缀,Base64转Hex支持选择小写或大写输出,输入后实时转换,错误(非法字符、奇数长度Hex)即时提示,支持一键复制结果、下载为txt文件、双向切换时自动交换内容,纯浏览器本地JavaScript处理,不上传任何数据,适合抓包数据分析、网络协议调试、二进制日志转码、API接口参数处理。

相关推荐

适用场景

  • 将Wireshark、Charles、Fiddler等抓包工具输出的十六进制二进制数据转换为Base64,用于API接口调试
  • 把接口返回的Base64编码二进制数据解码为Hex,逐字节分析协议字段内容
  • 处理加密密钥、签名、哈希值在Hex表示和Base64表示之间的转换
  • 网络协议开发调试时,在抓包Hex格式和接口Base64参数格式之间快速转换
  • 二进制日志分析:将日志中的十六进制dump内容转为Base64用于问题复现,或反向转换
  • CTF比赛、安全研究中处理编码题,快速在Hex和Base64之间切换
  • 开发时根据接口文档把Hex表示的二进制数据转为Base64放入JSON请求体
  • 对接第三方API时,把文档中的Hex示例转为实际可用的Base64参数值
  • 将Hex格式的二进制文件片段转为Base64,用于data URI或嵌入配置文件
  • 验证Base64编码解码是否正确,转回Hex对比原始字节序列
  • 学习编码原理时直观观察Hex和Base64两种编码方式的对应关系
  • 移动端调试时临时转码,不用打开电脑就能快速处理编码问题

功能特点

  • 双向互转:同时支持Hex转Base64和Base64转Hex,一个工具满足两种方向转换需求
  • 智能输入处理:自动去除Hex中的空格、换行符、0x前缀,支持连续Hex和空格分隔格式(如48 65 6C 6C 6F)
  • Hex大小写选择:Base64转Hex时支持输出小写(a-f)或大写(A-F)十六进制,满足不同场景需求
  • 实时转换:输入后300ms防抖自动转换,无需点击按钮,输入即时出结果
  • 明确错误提示:非法十六进制字符、Hex字符串长度不为偶数时给出中文错误提示,便于排查
  • 双向智能切换:切换转换方向时自动将输出结果作为输入,方便双向验证和快速转回
  • 一键复制结果:转换完成后一键复制输出内容到剪贴板,直接用于接口参数或文档
  • 结果下载:支持将转换结果下载为txt文本文件,方便保存和分享
  • 一键清空:快速清空输入输出内容,重新开始转换
  • 字符计数:输入输出区域实时显示字符数,方便预估数据长度
  • 等宽字体显示:代码等宽字体展示十六进制和Base64内容,阅读体验更适合开发者
  • 面板宽度可调:PC端可拖动中间分隔条调整输入输出面板宽度比例
  • 移动端适配:响应式设计,手机上使用tab切换输入和输出区域,触摸友好
  • 纯本地浏览器处理:所有转换在浏览器本地JavaScript完成,不经过任何服务器,数据安全不上传

使用方法

  1. 选择转换方向:Hex→Base64 或 Base64→Hex,需要大写Hex输出时在Base64→Hex模式选择「大写」
  2. 将待转换的Hex字符串或Base64字符串粘贴到左侧输入框(支持空格分隔、带0x前缀的Hex)
  3. 输入后工具自动实时转换,右侧立即输出结果,如有错误会显示红色提示
  4. 点击复制按钮复制结果,或点击下载按钮保存为txt文件;切换方向会自动带入结果继续转换

常见问题

支持哪些输入格式?

Hex输入支持:①连续十六进制字符串(如48656C6C6F);②空格分隔字节(如48 65 6C 6C 6F);③带0x前缀格式(如0x48 0x65);④带换行分隔的多行Hex。工具会自动去除空白和前缀后再转换。Base64输入自动忽略空白字符。

可以把Base64转回十六进制吗?

可以。点击方向切换按钮选择「Base64 → Hex」即可将Base64解码为十六进制字符串,还可以选择输出小写还是大写的Hex。

为什么提示「Hex字符串长度必须为偶数」?

因为十六进制中两个字符表示一个字节(00-FF),所以合法的Hex字符串长度一定是偶数。如果出现这个错误,请检查输入是否多打/少打了一个字符,或者是否复制时截断了。

为什么提示「包含非法的十六进制字符」?

十六进制只允许0-9和a-f/A-F这16个字符,出现其他字符(比如g-z、特殊符号)就会报错。请检查是否复制了非Hex内容,或者是否把Base64粘贴到了Hex输入框。

转换方向切换会丢失内容吗?

不会。点击方向切换按钮时,工具会自动把当前输出内容作为新方向的输入,你可以方便地把转换结果转回去验证,不需要手动复制粘贴。

输入的Hex带0x前缀能处理吗?

可以。工具会自动检测并去除开头的0x前缀,不管是整个字符串开头有0x,还是每个字节前有0x(如0x48 0x65)都能正确处理。

转换结果可以直接用于API请求吗?

可以。转换输出的Base64是标准RFC 4648编码的纯文本字符串,可以直接放入JSON字段、HTTP请求体、URL参数(注意URL编码)或Header中;输出的Hex是纯十六进制字符串,可以直接用于二进制协议描述、密钥表示等场景。

为什么需要在Hex和Base64之间转换?

抓包工具(如Wireshark、Charles)、协议分析器、二进制日志通常以十六进制展示字节流,方便逐字节查看;但API接口、JSON、文本配置文件通常需要Base64编码来传输二进制数据(因为Base64是纯文本安全字符)。Hex→Base64用于把抓包得到的二进制数据转成接口可用的文本格式;Base64→Hex用于把Base64编码的数据还原为逐字节可读的十六进制,方便调试和分析。

大文件或长Hex可以转换吗?

对于几十KB大小的内容本地转换完全没问题,浏览器处理速度很快。由于是纯前端textarea输入,对于特别大的内容(几MB以上)建议使用专业工具,日常开发抓包调试、接口参数处理完全够用。

转换的数据会上传到服务器吗?

不会。所有编码解码工作完全在你的浏览器本地通过JavaScript完成,输入的Hex或Base64内容不会通过网络发送到任何服务器,关闭页面数据即丢失,敏感的密钥、抓包数据都可以放心处理。

支持大写十六进制输出吗?

支持。在Base64转Hex模式下,可以切换「小写」/「大写」按钮选择输出a-f还是A-F,有些协议、规范或文档要求大写Hex输出。

在手机上能用吗?

可以。工具采用响应式设计,在手机上使用时输入输出分tab显示,面板尺寸适配手机屏幕,触摸操作友好,外出调试时也能快速转换。

转换结果怎么保存?

两种方式:①点击复制按钮直接复制到剪贴板,粘贴到你需要的地方;②点击下载按钮(下载箭头图标),会把结果保存为txt文本文件到本地。

Hex和Base64分别是什么?

十六进制(Hexadecimal/Hex)是用0-9和A-F共16个字符表示二进制数据的方式,每个字节用两个字符表示(00-FF),适合人类逐字节阅读二进制内容。Base64是用64个可打印字符(A-Z,a-z,0-9,+,/)表示二进制的编码方式,主要用于在文本协议(如JSON、HTTP、Email)中安全传输二进制数据,编码后体积比原始二进制大约增加33%。

这个工具和单纯的Base64编码解码有什么区别?

普通Base64编解码是文本字符串↔Base64,而本工具处理的是原始字节序列:Hex本身就是字节的十六进制表示,Hex↔Base64转换是纯字节层面的转码,不涉及文本编码(UTF-8/GBK等)问题,适合处理真正的二进制数据、加密密钥、协议报文等。

关于Hex十六进制与Base64编码

在计算机和网络开发中,我们经常需要在不同的二进制表示格式之间转换。十六进制(Hexadecimal,简称Hex)和Base64是两种最常用的二进制数据文本表示方式,各有其适用场景:Hex方便人类逐字节阅读调试,Base64适合在文本协议中传输二进制数据,开发者经常需要在两者之间转换。

十六进制使用0-9和A-F共16个字符表示数据,每个字节对应两个十六进制字符(00到FF),一个字节正好是两位十六进制数。这种表示方式非常直观——两个字符一个字节,很容易对齐查看,所以抓包工具(Wireshark、Charles)、十六进制编辑器、调试器、协议文档都习惯用Hex展示二进制数据,方便开发者定位字节偏移和字段值。

Base64是一种用64个可打印ASCII字符(A-Z、a-z、0-9、+、/,加上=作为填充)表示任意二进制数据的编码方式。它的主要作用是让二进制数据可以安全地通过只能处理文本的协议传输——比如JSON里不能直接放原始二进制字节,HTTP Header值不能包含非打印字符,Email正文不能直接带附件——把二进制编码成Base64文本就解决了这个问题,代价是编码后体积增加约33%(每3字节编码为4个字符)。

为什么不直接在接口里用Hex传输二进制?当然也可以,但Base64比Hex效率高一些:Hex每字节用2个字符表示,编码效率是50%(1字节→2字符);Base64每3字节用4个字符表示,编码效率是75%。所以同样的二进制数据用Base64表示更短,在文本传输场景更常用;但Hex更直观便于人工阅读分析,所以抓包调试用Hex,接口传输用Base64,两者之间的转换就成了开发者常见需求。

本工具的转换完全是字节层面的纯转码,不涉及任何文本编码(UTF-8、GBK等)假设:Hex字符串直接解析为字节数组,字节数组直接编码为Base64;反过来Base64直接解码为字节数组,字节数组直接输出为Hex字符串。这一点很重要——普通的「字符串Base64编码」会涉及文本编码转换,但Hex↔Base64是纯字节表示之间的转换,结果是确定唯一的,不会有乱码问题。

工具支持灵活的输入格式是考虑到实际使用场景:Wireshark默认输出的Hex就是每个字节之间空格分隔,很多文档里的Hex会带0x前缀,复制粘贴时经常带换行。自动去除空白和0x前缀可以省去手动清理的麻烦,直接粘贴就能转换,大幅提升调试效率。

大小写选择也是实用功能:不同规范和系统对Hex大小写偏好不同——Unix系工具和很多开源项目习惯用小写(a-f),Windows和某些企业规范习惯用大写(A-F),密码学领域有时要求大写。工具在Base64转Hex时提供大小写切换,不需要手动转大小写。

纯本地处理是安全和速度的保证:编码转换本质是简单的数学运算,不需要任何服务端计算,在浏览器本地用JavaScript处理速度极快(微秒级),而且敏感数据(密钥、签名、未公开的协议数据)不会离开你的电脑,不存在网络传输泄露风险。即使在内网隔离、离线环境下也能正常使用。

术语表

十六进制 (Hex/Hexadecimal)
基数为16的计数系统,用0-9和A-F(a-f)表示数值,两个十六进制字符正好表示一个字节(00-FF),是二进制数据最直观的文本表示方式,广泛用于调试、抓包和协议文档。
Base64
一种基于64个可打印ASCII字符的二进制编码方式,将3字节二进制编码为4个文本字符,用于在JSON、HTTP、Email等文本协议中安全传输二进制数据,编码后体积增加约1/3。
字节 (Byte)
计算机数据的基本单位,1字节=8位(bit),可表示0-255之间的数值,在Hex中用两个字符表示,是网络协议和二进制数据的基础单位。
RFC 4648
Base64编码的官方标准文档,定义了标准Base64和URL安全Base64的编码规则,本工具使用的是标准Base64编码。
0x前缀
编程中表示十六进制数的常用前缀(如0x1A表示十进制26),很多文档和代码中的Hex会带0x前缀,工具会自动识别并去除。
Wireshark
最流行的网络抓包分析工具,默认以十六进制+ASCII形式展示网络数据包内容,是开发者调试网络协议的常用工具,其输出的Hex数据是本工具常见输入来源。
二进制转码
指在不同的二进制数据表示格式(Hex、Base64、Base32、Base58等)之间转换,不改变原始数据本身,只是改变表示方式。
等宽字体 (Monospace)
每个字符宽度相同的字体,适合展示代码、十六进制数据、表格等对齐要求高的内容,工具默认使用系统等宽字体显示编码内容。
防抖 (Debounce)
前端常用性能优化技术,输入停止300ms后才执行转换,避免每次按键都执行计算,提升大量输入时的流畅度。
编码效率
原始数据长度与编码后长度的比值,Hex编码效率50%(1字节→2字符),Base64编码效率75%(3字节→4字符),Base64比Hex节省约25%的文本长度。
填充字符 (=)
标准Base64编码末尾的=号用来填充,让编码后长度为4的倍数,解码时填充字符会被忽略,属于标准Base64的一部分。
本地处理
所有计算在用户浏览器内通过JavaScript完成,数据不上传到服务器,既快又安全,适合处理敏感数据。

Hex与Base64编码特性对比

两种二进制表示方式的特点对比:

特性十六进制 (Hex)Base64
字符集0-9, A-F (16个字符)A-Z,a-z,0-9,+,/,= (65个字符)
编码效率50% (1字节 → 2字符)75% (3字节 → 4字符)
可读性高(两字符一字节,便于逐字节分析)低(不直观,不易直接阅读)
典型用途抓包分析、十六进制编辑器、协议文档、密钥表示JSON/HTTP/Email传输二进制,Data URI,API参数
大小写敏感不敏感(a-f和A-F等价)敏感(A和a是不同编码)
示例("Hello")48656C6C6FSGVsbG8=

常见二进制数据编码对照表

文本"Hello"在不同编码下的表示:

编码格式编码结果字符长度
原始文本Hello5字节
Hex (小写)48656c6c6f10字符
Hex (大写)48656C6C6F10字符
标准Base64SGVsbG8=8字符 (含1个填充)

常见错误排查表

转换出错时参考:

错误提示可能原因解决方法
包含非法的十六进制字符Hex中出现了g-z、G-Z或特殊符号检查是否误粘Base64或其他文本,删除非法字符
Hex字符串长度必须为偶数Hex字符数是奇数,少打/多打了一位检查输入开头结尾,确认没有截断
(Base64解码报错)Base64字符串损坏、长度不对或含非法字符检查Base64是否完整,有没有缺填充=

Privacy & Security

本Base64-Hex互转工具所有编码解码工作完全在你的浏览器本地通过JavaScript完成,你输入的Hex字符串和Base64内容不会被上传到任何服务器,也不会被记录、缓存或存储。输入、转换、复制、下载都在本地浏览器内存中进行,关闭或刷新页面后所有临时数据自动清除。敏感的加密密钥、抓包数据、内部协议数据都可以放心处理,不存在任何泄露风险。

Authoritative References

Troubleshooting

粘贴Hex后提示非法字符怎么办?

检查输入中是否包含g-z/G-Z以外的字母、中文标点、特殊符号。Wireshark复制的Hex有时会带ASCII侧栏内容,只复制十六进制部分即可。另外确认转换方向是Hex→Base64,不要把Base64粘到Hex输入框。

Hex长度是奇数报错是什么原因?

两个Hex字符表示一个字节,合法Hex一定是偶数长度。常见原因:①复制时漏掉了最后一位;②开头的0x被算成了内容导致长度减2后为奇数;③中间多了空格导致解析错误,请确认每个字节都是两个字符。

Base64解码失败报错怎么办?

检查:①Base64是否完整,有没有截断;②是否包含非法字符(Base64只允许A-Z,a-z,0-9,+,/,=);③末尾填充=数量是否正确(0、1或2个);④是否是URL安全Base64(用-和_代替+和/),本工具暂不支持URL安全Base64。

为什么我转出来的Base64和别人的不一样?

如果是文本字符串的Base64,不同编码(UTF-8、GBK)结果不同;但本工具是Hex↔Base64纯字节转码,只要Hex相同输出Base64一定相同,如果不同请检查:①Hex是否完全一致(包括空格其实不影响,但0x也不影响);②大小写不影响Hex解析;③是否有不可见的特殊字符混在Hex里。