Hexspeak 转换器

空格用于分隔词语。不支持的字符会被报告,绝不会被静默删除。

把非负十进制整数转换成便于记忆的十六进制单词,或检验拉丁字母短语能否用十六进制字符表示。十进制模式会显示原始十六进制值;只有每一位都符合规则时,才按经典读法将 0 读作 O、将 1 读作 I。短语模式提供定义明确的精确规则和保守替换规则,会逐一报告不支持的字符而不会静默删除,并可将完全有效的结果格式化后用于代码、文档、测试数据或易记标识符。

Hexspeak 转换器使用方法

  1. 1

    选择转换模式

    要处理非负十进制整数,请选择“十进制整数”;要检验单词或短语,请选择“拉丁字母短语”。

  2. 2

    设定短语规则

    在短语模式中,可选择仅接受十六进制字符的精确规则,或采用 O → 0、S → 5 等有限替换的保守规则。

  3. 3

    检查并格式化结果

    查看原始十六进制值、可读形式和不支持字符报告;结果完全有效时,还可选择大小写、前缀和空格格式。

生成 Hexspeak 的两种严谨方式

十六进制以 16 为基数,使用 0–9A–F。若各十六进制位为 d₀ … dₙ,其表示的整数为:

N = d₀ × 16ⁿ + d₁ × 16ⁿ⁻¹ + … + dₙ

十进制整数模式中,转换器接受最长 256 位的非负十进制整数,并在不受 PHP 固定宽度整数范围限制的情况下生成大写原始十六进制值。随后,它会按本工具采用的经典可读规则检验结果:0 → O1 → IA–F 保持为字母。原始值中只要出现 29 的任何数字,就不能按这套经典规则完整读出。例如,十进制 12648430 转换为原始值 C0FFEE,可读作 COFFEE;十进制 4919 转换为 1337,因此不符合这套严格规则。

拉丁字母短语模式回答的是另一个问题:输入短语能否仅用十六进制字形表示?精确规则只接受 A–F 和原样数字。保守规则还允许 O → 0IL → 1S → 5T → 7G → 6。这些替换有意限制在较小范围内。不支持的字符会被列出,绝不会被丢弃;只有整个短语都有效时,才会提供格式化输出。

输入与模式 处理过程 结果
十进制模式中的 3735928559 从十进制转换为十六进制 DEADBEEF
十进制模式中的 3405691582 从十进制转换为十六进制 CAFEBABE
保守短语模式中的 COFFEE O → 0 C0FFEE
保守短语模式中的 BAD FOOD O → 0;选择连续输出 BADF00D

DEADBEEFCAFEBABEBADF00DC0FFEE 等记号既像单词,又是有效十六进制值,因此容易记忆。一个有正式文档的实际例子是 0xCAFEBABE:Java 虚拟机规范将它定义为 Java class 文件开头的魔数。但外观巧妙的值并不一定是标准标识符,也不一定能安全用于任何系统;请核对目标系统对数值范围和位宽的要求。

Hexspeak 不是文本转 HEX

文本转 HEX 编码器转换的是字符编码后的字节。例如,UTF-8 文本 Coffee 会变成 43 6F 66 66 65 65;只要知道字符编码,就可以将该字节表示解码。Hexspeak 则是用受限字符集构造视觉上像单词的值。O → 0 以及 I/L → 1 等替换存在歧义,因此短语样式化不可逆。它的范围也比 leetspeak 更窄,因为 leetspeak 可以使用许多并非有效十六进制数字的字符。

输入最多 256 个字符,短语最多 32 个词。短语模式仅支持无重音符号的 ASCII 拉丁字母、数字和空格,不直接支持汉字或其他文字;如确有需要,请先自行采用明确的拉丁字母转写,并去除附加符号后再检验。十进制值和短语会由工具在服务器端处理,也可能出现在多步骤流程的网址中,因此请勿输入密码、凭据或私密标识符。

资料来源:NIST 对十六进制记法和四位二进制数字的说明 · Java 虚拟机规范:class 文件魔数

常见问题

Hexspeak 是一种选择或读出十六进制值的方法,让其中的数字看起来像拉丁字母单词。严格示例只使用 A–F 和数字;有些约定还会把特定数字读作字母。替换规则并没有唯一的通用标准,因此本转换器会明确说明采用的规则,而不会把猜测说成标准答案。

它先将完整的非负十进制整数转换为大写十六进制,不受机器整数固定位宽限制;然后保留 A–F,将 0 读作 O、将 1 读作 I。若原始十六进制结果包含 2 至 9 的任何数字,就会标记为不符合严格经典读法。

精确规则只接受 A–F 和原样数字。保守规则另外允许六组明示的视觉替换:O → 0、I/L → 1、S → 5、T → 7、G → 6。它不会自行扩展为更宽泛的 leetspeak 规则,任何不支持的字符都会保留在检验报告中。

在保守规则下,两个 O 可替换为零,C、F、E 本身也是十六进制字母。HELLO 中的 H 没有保守的十六进制替代字符,因此转换器会报告 H 不受支持,而不是将其删除后给出误导性的残缺结果。

可以,但必须先确保每个记号都有效。你可以选择大写或小写、原始数字或为每个记号添加 0x 前缀,也可以保留空格或连续连接。连续输出会去掉词语边界,重视可读性时应保留分隔空格。无效短语不会被格式化成貌似完整的结果。

不能。O 与数字零共用同一字形,I 和 L 也都可能变成数字一,因此无法保证还原原短语。需要可逆数据表示时,请使用文本转 HEX 或字节编码器;Hexspeak 适合在受限字母表符合需求时生成易于辨认和记忆的值。

请勿将输入视为仅在浏览器中处理。本工具为服务端工具,输入值会发送至应用服务器处理,多步骤流程还可能将其放入网址。请避免输入密码、API 密钥、机密标识符及其他敏感内容;服务器和代理的常规日志策略可能适用。

相关工具

此工具还提供其他语言版本