使用 Linux 命令将十六进制信息转换为二进制

Posted

技术标签:

【中文标题】使用 Linux 命令将十六进制信息转换为二进制【英文标题】:Transform hexadecimal information to binary using a Linux command 【发布时间】:2011-12-11 05:01:30 【问题描述】:

我的 Linux 系统上有这个二进制文件...

 udit@udit-Dabba ~ $ cat file.enc
 Salted__s�bO��<0�F���Jw!���]�:`C�LKȆ�l

使用 hexdump 命令,我看到它的信息如下:

 udit@udit-Dabba ~ $ hexdump -C file.enc
 00000000  53 61 6c 74 65 64 5f 5f  1b 73 a1 62 4f 15 be f6  |Salted__.s.bO...|
 00000010  3c 30 cc 46 ee 10 13 11  84 bf 4a 77 21 a4 84 99  |<0.F......Jw!...|
 00000020  0e 5d ef 11 18 3a 60 43  a0 4c 4b 1e c8 86 e6 6c  |.]...:`C.LK....l|
 00000030

现在我在其他系统上获得了一个文件,其内容如下:

 53 61 6c 74 65 64 5f 5f  1b 73 a1 62 4f 15 be f6
 3c 30 cc 46 ee 10 13 11  84 bf 4a 77 21 a4 84 99
 0e 5d ef 11 18 3a 60 43  a0 4c 4b 1e c8 86 e6 6c

我需要从这个 hexdump 中找出完全相同的二进制信息。

我该怎么做?

如果没有任何开关,那么 C 代码也可以正常工作。

(但最好是带有一些开关的 Linux 命令)

限制:

文件中的二进制信息是加密算法的输出,所以内容应该完全匹配...

【问题讨论】:

看看xxd @user786653 Thnx 它帮助我知道了-r 而不是-p 并且很快就需要它......所以发布了这个问题 关于同一主题,另见:***.com/questions/2614764/hex-dump-of-file-in-bash 【参考方案1】:

按照@user786653 的建议,使用xxd(1) 程序:

xxd -r -p input.txt output.bin

【讨论】:

添加使用 echo "hex" | xxd -r -p - 从管道标准输出中获取输入 也可以用来获取二进制哈希值——比如echo something | sha256sum | xxd -r -p - 解释标志:explainshell.com/explain?cmd=xxd+-r+-p

以上是关于使用 Linux 命令将十六进制信息转换为二进制的主要内容,如果未能解决你的问题,请参考以下文章

用于提权的Linux命令,即“xxd”

如何将时间戳从十六进制格式转换为 EPOCH 时间戳?

进制数转换方法(八/十六/十)

从命令行参数 C 将十六进制转换为二进制

将十进制转换为 ASCII

Linux hexdump命令