将字节数据转换为带有特殊字符 ‘\’ 的十六进制。

huangapple go评论68阅读模式
英文:

Converting bytes data do hex with special character '\'

问题

给定从数据包捕获中检索的字节示例:

b'\x18\x05'

如何正确进行十六进制编码,考虑到特殊字符''?

当我使用Python进行十六进制编码时,我得到b'1805',但当我手动删除特殊字符''(b'x18x05')时,我得到正确的值b'783138783035'。
考虑在线十六进制编码器(例如:https://www.hexator.com/)的结果是b'\x18\x05'的结果是62275c7831385c78303527。

谢谢您提前。

英文:

Given example of bytes retrieved from packet capture:

b'\x18\x05'

how can i hexlify it properly considering special character '' ?

When i hexlify it with python i'm getting b'1805' but when i remove manually special character '' (b'x18x05') i'm getting proper value b'783138783035'.
Considering online hex encoders ( for example : https://www.hexator.com/ ) the result of b'\x18\x05' is 62275c7831385c78303527.

Thank you in advance

答案1

得分: 1

b'\x18\x05' 是两个字节 0x18 和 0x05。那是"正确的数值"。b'' 只是一个 bytes Python 对象的默认显示表示法。\n 是表示单个字节的十六进制值的转义代码。

要进行显示,您可以使用:

data = b'\x18\x15'
print(data)
print(data.hex())
print(data.hex(sep=' '))

输出:

b'\x18\x15'
1815
18 15
英文:

b'\x18\x05' is the two bytes 0x18 and 0x05. That's the "proper value". b'' is just the default display notation for a bytes Python object. \nn is an escape code representing the hexadecimal value of a single byte.

For display you can use:

data = b'\x18\x15'
print(data)
print(data.hex())
print(data.hex(sep=' '))

Output:

b'\x18\x15'
1815
18 15

huangapple
  • 本文由 发表于 2023年2月10日 15:23:29
  • 转载请务必保留本文链接:https://go.coder-hub.com/75408027.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定