我正在尝试解码网络数据,我已经将password设置为pas$w0rd@1ħ213₹。
我希望在十六进制输出中看到这个完整的密码字符串,但它似乎仅限于ASCII字符范围。
下面是一个使用Linux的十六进制输出的示例:
hexdump hexd.hex -C -L
00000000 18 03 02 40 00 02 ff ff 70 6f 74 61 74 6f 45 43 |...@....potatoEC|
00000010 4f 44 45 43 4f 44 45 43 4f 44 45 43 4f 44 45 43 |ODECODECODECODEC|
00000020 4f 44 45 43 4f 44 45 43 4f 44 45 00 00 02 00 2f |ODECODECODE..../|
00000030 01 00 00 05 00 0f 00 01 01 0a 55 73 65 72 2d 41 |..........User-A|
00000040 67 65 6e 74 3a 20 63 75 72 6c 2f 37 2e 38 36 2e |gent: curl/7.86.|
00000050 30 0d 0a 41 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a |0..Accept: */*..|
00000060 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a 20 |Content-Length: |
00000070 34 35 0d 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 |45..Content-Type|
00000080 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d |: application/x-|
00000090 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f |www-form-urlenco|
000000a0 64 65 64 0d 0a 0d 0a 75 73 65 72 6e 61 6d 65 3d |ded....username=|
000000b0 75 73 65 72 6e 61 6d 65 26 70 61 73 73 77 6f 72 |username&passwor|
000000c0 64 3d 70 61 73 24 77 30 72 64 40 31 c4 a7 32 31 |d=pas$w0rd@1..21|
000000d0 33 e2 82 b9 fc f3 ca d2 0a 49 8b 0a b3 47 04 f8 |3........I...G..|python3 3的十六进制库也是如此:
000000A0: 64 65 64 0D 0A 0D 0A 75 73 65 72 6E 61 6D 65 3D ded....username=
000000B0: 75 73 65 72 6E 61 6D 65 26 70 61 73 73 77 6F 72 username&passwor
000000C0: 64 3D 70 61 73 24 77 30 72 64 40 31 C4 A7 32 31 d=pas$w0rd@1..21
000000D0: 33 E2 82 B9 FC F3 CA D2 0A 49 8B 0A B3 47 04 F8 3........I...G..但是,我的终端当然可以解码这些字符。下面是打印所有可打印字符的sed的输出:
❯ sed 's/[^[:print:]]//g' hexd.hex
@��potatoECODECODECODECODECODECODECODE/
User-Agent: curl/7.86.0
Accept: */*
Content-Length: 45
Content-Type: application/x-www-form-urlencoded
username=username&password=pas$w0rd@1ħ213₹����
I�我的地区设置为en_US.UTF-8
如何使用十六进制或在终端上打印十六进制和相应Unicode字符的任何替代方法?我想在终点站或巨蟒上找一条路。
发布于 2022-11-07 22:04:21
正如一些人在注释中已经指出的那样,这并不能真正发挥作用,因为十六进制只会给出字节。对于ASCII字符,这不是一个问题,因为它们只有一个字节大,但是所有非ASCII字符都大于一个字节,因此在使用十六进制显示时会被拆分。
您也可以在您的六号转储中看到这种情况: hbar应该在十六进制中有两个点,而不仅仅是一个点。
然而,取决于您到底想做什么,我可能会为您提供一个解决方案。在Visual代码的十六进制中,您可以标记多个字节,数据检查器将以不同的编码方式向您显示字符:

https://stackoverflow.com/questions/74353256
复制相似问题