加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

将十六进制字符串转换为bash命令行中的ascii

发布时间:2020-12-15 18:51:08 所属栏目:安全 来源:网络整理
导读:我有很多这样的字符串,我想找到一个命令来转换它在ascii,我尝试用echo -e和od,但它没有工作. 0xA7.0x9B.0x46.0x8D.0x1E.0x52.0xA7.0x9B.0x7B.0x31.0xD2 此代码将文本0xA7.0x9B.0x46.0x8D.0x1E.0x52.0xA7.0x9B.0x7B.0x31.0xD2转换为具有等效值的11个字节的流.
我有很多这样的字符串,我想找到一个命令来转换它在ascii,我尝试用echo -e和od,但它没有工作.
0xA7.0x9B.0x46.0x8D.0x1E.0x52.0xA7.0x9B.0x7B.0x31.0xD2
此代码将文本0xA7.0x9B.0x46.0x8D.0x1E.0x52.0xA7.0x9B.0x7B.0x31.0xD2转换为具有等效值的11个字节的流.这些字节将被写入标准输出.
TESTDATA=$(echo '0xA7.0x9B.0x46.0x8D.0x1E.0x52.0xA7.0x9B.0x7B.0x31.0xD2' | tr '.' ' ')
for c in $TESTDATA; do
    echo $c | xxd -r
done

正如其他人所指出的,这不会导致可打印的ASCII字符串,因为指定的字节不是ASCII.您需要发布有关您如何获取此字符串的更多信息,以帮助您.

如何工作:xxd -r将十六进制数据转换为二进制数(如反向hexdump). xxd要求每一行都从行上的第一个字符的索引号开始(在某些东西上运行hexdump,并查看每行如何从索引号开始).在我们的情况下,我们希望该数字始终为零,因为每个执行只有一行.幸运的是,我们的数据在每个字符之前已经有零,这是0x符号的一部分.小写x被xxd忽略,所以我们要做的就是将每个0xhh字符管道传递给xxd,并让它执行工作.

tr将句点转换为空格,以便将其正确分割.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读