Hex 编码解码
免费在线 Hex 编码解码 工具。100% 本地计算,数据不离开您的设备,隐私安全有保障。
结果将显示在这里...
输入 → 编码
使用指南
关于 Hex(十六进制)
Hex(Hexadecimal,十六进制)是一种使用 16 个字符(0-9, A-F)来表示二进制数据的编码方法。每个十六进制字符代表 4 位二进制数(0-15),因此每个字节(8 位)可以用 2 个十六进制字符表示。Hex 编码后的数据大小为原始数据的 200%,比 Base64 更大,但更易读和调试。Hex 广泛应用于颜色代码、MAC 地址、哈希值、内存地址等场景,是程序员最常用的编码方式之一。
使用步骤
Hex 编码和解码非常简单:
编码原理
Hex 编码将二进制数据转换为十六进制字符的过程:
0xFF(255)编码为 “FF”,字节 0x41(65,字符 'A')编码为 “41”。字符串 “Hello” 编码为 “48656C6C6F”。Hex 格式变体
Hex 编码有几种常见的格式变体:
应用场景
Hex 广泛应用于需要可读性和调试友好性的场景:
常见问题
Q: Hex 和 Base64 有什么区别?
A: Hex 和 Base64 都是二进制数据的文本表示方式,但有不同的特点。Hex:1)使用 16 个字符(0-9, A-F)。2)编码后大小为原始数据的 200%。3)更易读,适合调试。Base64:1)使用 64 个字符(A-Z, a-z, 0-9, +, /)。2)编码后大小约为原始数据的 133%。3)更紧凑,适合传输。选择建议:1)需要可读性和调试:使用 Hex。2)需要紧凑传输:使用 Base64。3)加密算法输出:通常使用 Hex(如 SHA-256)。
Q: 为什么哈希值通常使用 Hex 表示?
A: 哈希算法(如 SHA-256、 MD5)的输出是二进制数据,通常使用 Hex 表示。原因:1)可读性:Hex 比二进制更易读,便于人工比对。2)固定长度:SHA-256 输出 32 字节,Hex 表示为 64 个字符,长度固定。3)传统习惯:加密和哈希领域传统上使用 Hex。4)调试友好:开发者可以轻松复制、粘贴、比对哈希值。示例:SHA-256(“hello”) = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824。
Q: Hex 颜色代码是什么?
A: Hex 颜色代码是使用十六进制表示 RGB 颜色的方式,格式为 #RRGGBB。格式:1)#RRGGBB:6 位十六进制,每 2 位表示一个颜色通道(红、绿、蓝)。2)#RGB:3 位简写,每位重复一次(如 #F00 = #FF0000)。示例:1)#FF0000:纯红色(R=255, G=0, B=0)。2)#00FF00:纯绿色(R=0, G=255, B=0)。3)#0000FF:纯蓝色(R=0, G=0, B=255)。4)#FFFFFF:白色。5)#000000:黑色。转换:Hex 颜色可以转换为 RGB(如 rgb(255, 87, 51))或 HSL(如 hsl(14, 100%, 60%))。
Q: MAC 地址为什么使用 Hex 表示?
A: MAC 地址(Media Access Control Address)是网络设备的物理地址,使用 Hex 表示。格式:6 个字节(48 位),通常用冒号或连字符分隔,如 00:1A:2B:3C:4D:5E 或 00-1A-2B-3C-4D-5E。原因:1)紧凑:6 字节用 12 个十六进制字符表示,比二进制(48 位)或十进制(14 位数字)更紧凑。2)可读:Hex 比二进制更易读,便于人工识别和输入。3)标准:IEEE 802 标准规定使用 Hex 表示 MAC 地址。示例:00:1A:2B:3C:4D:5E 表示 MAC 地址为 0x001A2B3C4D5E。
Q: 如何在 JavaScript 中使用 Hex?
A: JavaScript 提供了多种方法处理 Hex 编码。字符串转 Hex:const str = 'Hello';
const hex = Array.from(str).map(c => c.charCodeAt(0).toString(16).padStart(2, '0')).join('');
// 结果: '48656c6c6f'
Hex 转字符串:const hex = '48656c6c6f';
const str = hex.match(/.{1,2}/g).map(byte => String.fromCharCode(parseInt(byte, 16))).join('');
// 结果: 'Hello'
数字转 Hex:const hex = (255).toString(16); // 'ff'
Hex 转数字:const num = parseInt('ff', 16); // 255
Q: Hex 编辑器是什么?
A: Hex 编辑器(Hex Editor)是一种用于查看和编辑二进制文件的工具,以十六进制格式显示文件内容。功能:1)查看二进制文件:以 Hex 格式显示文件的每个字节。2)编辑二进制文件:直接修改文件的字节值。3)搜索和替换:在二进制文件中搜索特定的字节序列。4)文件分析:分析文件结构、查找文件头、识别文件类型。应用场景:1)逆向工程:分析可执行文件、固件。2)数据恢复:修复损坏的文件。3)游戏修改:修改游戏存档、配置。4)安全研究:分析恶意软件。常用工具:HxD(Windows)、Hex Fiend(macOS)、xxd(Linux 命令行)。
使用场景
推荐:CSS 颜色代码
Hex 颜色代码是 CSS 中最常用的颜色表示方式,格式为 #RRGGBB。每 2 位十六进制表示一个颜色通道(红、绿、蓝),取值范围 00-FF(0-255)。Hex 颜色代码简洁、易读,是 Web 开发的标准。现代 CSS 还支持 8 位 Hex 颜色(#RRGGBBAA),最后 2 位表示透明度(Alpha 通道)。
- ✅ 标准 6 位 Hex(#FF5733)
- ✅ 3 位简写(#F00 = #FF0000)
- ✅ 8 位 Hex 带透明度(#FF573380)
- 💡 使用颜色选择器工具生成 Hex 颜色
- 💡 考虑使用 CSS 变量管理颜色
推荐:哈希值表示
推荐:MAC 地址和网络标识
MAC 地址(物理地址)使用 6 字节(48 位)Hex 表示,格式为 XX:XX:XX:XX:XX:XX 或 XX-XX-XX-XX-XX-XX。MAC 地址用于网络设备的唯一标识,前 3 字节为厂商标识(OUI),后 3 字节为设备序列号。类似的,IPv6 地址也使用 Hex 表示(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
- ✅ MAC 地址(00:1A:2B:3C:4D:5E)
- ✅ IPv6 地址(2001:db8::1)
- ✅ 网络设备标识
- 💡 使用冒号分隔提高可读性
推荐:UUID 和唯一标识符
UUID(Universally Unique Identifier,通用唯一标识符)使用 Hex 表示,格式为 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx(32 位 Hex + 4 个连字符)。UUID 用于生成全局唯一的标识符,广泛应用于数据库主键、分布式系统、文件系统等场景。UUID 有多个版本(v1-v5),其中 v4(随机生成)最常用。
- ✅ 数据库主键
- ✅ 分布式系统 ID
- ✅ 文件系统标识
- ✅ API 请求 ID
- 💡 使用 UUID v4(随机)或 v7(时间戳)
推荐:二进制文件分析
使用 Hex 编辑器查看和编辑二进制文件是逆向工程、数据恢复、安全研究的常用方法。Hex 编辑器以十六进制格式显示文件的每个字节,便于分析文件结构、查找文件头、识别文件类型。例如,PNG 文件以 89 50 4E 47(.PNG)开头,JPEG 文件以 FF D8 FF 开头。
- ✅ 逆向工程(分析可执行文件)
- ✅ 数据恢复(修复损坏文件)
- ✅ 文件格式分析
- ✅ 安全研究(分析恶意软件)
- 💡 使用专业 Hex 编辑器(HxD、Hex Fiend)
推荐:内存地址和调试
程序调试时,内存地址通常使用 Hex 表示(如 0x7FFF5FBFF000)。Hex 格式的内存地址易于阅读和比对,是调试器(如 GDB、LLDB、WinDbg)的标准格式。开发者可以使用 Hex 地址查看内存内容、设置断点、分析程序行为。
- ✅ 调试器(GDB、LLDB、WinDbg)
- ✅ 内存转储分析
- ✅ 指针和地址计算
- ✅ 汇编语言开发
- 💡 使用 0x 前缀表示十六进制数
最佳实践建议
- Hex 编码后数据大小为原始数据的 200%,不适合大文件传输,应使用 Base64 或二进制传输。
- 哈希值通常使用小写 Hex 表示,以保持一致性(如 Git、区块链)。
- CSS 颜色代码使用大写 Hex(#FF5733)更常见,但小写(#ff5733)也可以。
- MAC 地址使用冒号分隔(00:1A:2B:3C:4D:5E)比连字符(00-1A-2B-3C-4D-5E)更常见。
- 在 JavaScript 中,使用 toString(16) 将数字转换为 Hex,使用 parseInt(hex, 16) 将 Hex 转换为数字。
- Hex 编辑器是分析二进制文件的强大工具,但需要了解文件格式和字节序(大端/小端)。