Base64-Hex 互转
Base64与十六进制(Hex)双向在线互转工具,支持Hex字节序列转Base64编码、Base64解码为Hex字符串。自动识别并处理空格、换行符分隔的Hex输入,自动去除0x前缀,Base64转Hex支持选择小写或大写输出,输入后实时转换,错误(非法字符、奇数长度Hex)即时提示,支持一键复制结果、下载为txt文件、双向切换时自动交换内容,纯浏览器本地JavaScript处理,不上传任何数据,适合抓包数据分析、网络协议调试、二进制日志转码、API接口参数处理。
Base64与十六进制(Hex)双向在线互转工具,支持Hex字节序列转Base64编码、Base64解码为Hex字符串。自动识别并处理空格、换行符分隔的Hex输入,自动去除0x前缀,Base64转Hex支持选择小写或大写输出,输入后实时转换,错误(非法字符、奇数长度Hex)即时提示,支持一键复制结果、下载为txt文件、双向切换时自动交换内容,纯浏览器本地JavaScript处理,不上传任何数据,适合抓包数据分析、网络协议调试、二进制日志转码、API接口参数处理。
Hex输入支持:①连续十六进制字符串(如48656C6C6F);②空格分隔字节(如48 65 6C 6C 6F);③带0x前缀格式(如0x48 0x65);④带换行分隔的多行Hex。工具会自动去除空白和前缀后再转换。Base64输入自动忽略空白字符。
可以。点击方向切换按钮选择「Base64 → Hex」即可将Base64解码为十六进制字符串,还可以选择输出小写还是大写的Hex。
因为十六进制中两个字符表示一个字节(00-FF),所以合法的Hex字符串长度一定是偶数。如果出现这个错误,请检查输入是否多打/少打了一个字符,或者是否复制时截断了。
十六进制只允许0-9和a-f/A-F这16个字符,出现其他字符(比如g-z、特殊符号)就会报错。请检查是否复制了非Hex内容,或者是否把Base64粘贴到了Hex输入框。
不会。点击方向切换按钮时,工具会自动把当前输出内容作为新方向的输入,你可以方便地把转换结果转回去验证,不需要手动复制粘贴。
可以。工具会自动检测并去除开头的0x前缀,不管是整个字符串开头有0x,还是每个字节前有0x(如0x48 0x65)都能正确处理。
可以。转换输出的Base64是标准RFC 4648编码的纯文本字符串,可以直接放入JSON字段、HTTP请求体、URL参数(注意URL编码)或Header中;输出的Hex是纯十六进制字符串,可以直接用于二进制协议描述、密钥表示等场景。
抓包工具(如Wireshark、Charles)、协议分析器、二进制日志通常以十六进制展示字节流,方便逐字节查看;但API接口、JSON、文本配置文件通常需要Base64编码来传输二进制数据(因为Base64是纯文本安全字符)。Hex→Base64用于把抓包得到的二进制数据转成接口可用的文本格式;Base64→Hex用于把Base64编码的数据还原为逐字节可读的十六进制,方便调试和分析。
对于几十KB大小的内容本地转换完全没问题,浏览器处理速度很快。由于是纯前端textarea输入,对于特别大的内容(几MB以上)建议使用专业工具,日常开发抓包调试、接口参数处理完全够用。
不会。所有编码解码工作完全在你的浏览器本地通过JavaScript完成,输入的Hex或Base64内容不会通过网络发送到任何服务器,关闭页面数据即丢失,敏感的密钥、抓包数据都可以放心处理。
支持。在Base64转Hex模式下,可以切换「小写」/「大写」按钮选择输出a-f还是A-F,有些协议、规范或文档要求大写Hex输出。
可以。工具采用响应式设计,在手机上使用时输入输出分tab显示,面板尺寸适配手机屏幕,触摸操作友好,外出调试时也能快速转换。
两种方式:①点击复制按钮直接复制到剪贴板,粘贴到你需要的地方;②点击下载按钮(下载箭头图标),会把结果保存为txt文本文件到本地。
十六进制(Hexadecimal/Hex)是用0-9和A-F共16个字符表示二进制数据的方式,每个字节用两个字符表示(00-FF),适合人类逐字节阅读二进制内容。Base64是用64个可打印字符(A-Z,a-z,0-9,+,/)表示二进制的编码方式,主要用于在文本协议(如JSON、HTTP、Email)中安全传输二进制数据,编码后体积比原始二进制大约增加33%。
普通Base64编解码是文本字符串↔Base64,而本工具处理的是原始字节序列:Hex本身就是字节的十六进制表示,Hex↔Base64转换是纯字节层面的转码,不涉及文本编码(UTF-8/GBK等)问题,适合处理真正的二进制数据、加密密钥、协议报文等。
在计算机和网络开发中,我们经常需要在不同的二进制表示格式之间转换。十六进制(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) | 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") | 48656C6C6F | SGVsbG8= |
文本"Hello"在不同编码下的表示:
| 编码格式 | 编码结果 | 字符长度 |
|---|---|---|
| 原始文本 | Hello | 5字节 |
| Hex (小写) | 48656c6c6f | 10字符 |
| Hex (大写) | 48656C6C6F | 10字符 |
| 标准Base64 | SGVsbG8= | 8字符 (含1个填充) |
转换出错时参考:
| 错误提示 | 可能原因 | 解决方法 |
|---|---|---|
| 包含非法的十六进制字符 | Hex中出现了g-z、G-Z或特殊符号 | 检查是否误粘Base64或其他文本,删除非法字符 |
| Hex字符串长度必须为偶数 | Hex字符数是奇数,少打/多打了一位 | 检查输入开头结尾,确认没有截断 |
| (Base64解码报错) | Base64字符串损坏、长度不对或含非法字符 | 检查Base64是否完整,有没有缺填充= |
本Base64-Hex互转工具所有编码解码工作完全在你的浏览器本地通过JavaScript完成,你输入的Hex字符串和Base64内容不会被上传到任何服务器,也不会被记录、缓存或存储。输入、转换、复制、下载都在本地浏览器内存中进行,关闭或刷新页面后所有临时数据自动清除。敏感的加密密钥、抓包数据、内部协议数据都可以放心处理,不存在任何泄露风险。
检查输入中是否包含g-z/G-Z以外的字母、中文标点、特殊符号。Wireshark复制的Hex有时会带ASCII侧栏内容,只复制十六进制部分即可。另外确认转换方向是Hex→Base64,不要把Base64粘到Hex输入框。
两个Hex字符表示一个字节,合法Hex一定是偶数长度。常见原因:①复制时漏掉了最后一位;②开头的0x被算成了内容导致长度减2后为奇数;③中间多了空格导致解析错误,请确认每个字节都是两个字符。
检查:①Base64是否完整,有没有截断;②是否包含非法字符(Base64只允许A-Z,a-z,0-9,+,/,=);③末尾填充=数量是否正确(0、1或2个);④是否是URL安全Base64(用-和_代替+和/),本工具暂不支持URL安全Base64。
如果是文本字符串的Base64,不同编码(UTF-8、GBK)结果不同;但本工具是Hex↔Base64纯字节转码,只要Hex相同输出Base64一定相同,如果不同请检查:①Hex是否完全一致(包括空格其实不影响,但0x也不影响);②大小写不影响Hex解析;③是否有不可见的特殊字符混在Hex里。