我有一个从 C++ 客户端连接到 python 服务器的套接字连接。客户端在消息中放置了 Diffie-Hellman key ,但当我查看它时,由于客户端上有未签名的字符,它是乱码。
我已经能够使用 repr(key) 进行原始转储,并得到以下结果:
\'V\x99\xf3\x0c\x1b\xc7]\x1f\xe4\nQ5$*\x88\x88Yg\xff{\xea\xe9e\xd8\xb32oD\xff
\xcfV\x84\x90xv,\x9dw\x1e(\x12\xfe\x9a\xb4,\x96%\xad;S\xb6\xa3\xf9\xb69\xfa\xec
\x1dl\x97\x1d\xd64/'
key 长度应为 64。如何将此字符串转换为实际 key 的 64 个整数?
最佳答案
您可以使用漂亮的struct
module打开它的包装。这将为您提供一个包含 64 个小整数的元组(B
表示“无符号字符”):
>>> print repr(data)
'V\x99\xf3\x0c\x1b\xc7]\x1f\xe4\nQ5$*\x88\x88Yg\xff{\xea\xe9e\xd8\xb32oD\xff\xcfV\x84\x90xv,\x9dw\x1e(\x12\xfe\x9a\xb4,\x96%\xad
;S\xb6\xa3\xf9\xb69\xfa\xec\x1dl\x97\x1d\xd64/'
>>> len(data)
64
>>> struct.unpack("64B", data)
(86, 153, 243, 12, 27, 199, 93, 31, 228, 10, 81, 53, 36, 42, 136, 136, 89, 103, 255, 123, 234, 233, 101, 216, 179, 50, 111, 68,
255, 207, 86, 132, 144, 120, 118, 44, 157, 119, 30, 40, 18, 254, 154, 180, 44, 150, 37, 173, 59, 83, 182, 163, 249, 182, 57, 250
, 236, 29, 108, 151, 29, 214, 52, 47)
关于python - 如何在python中将unsigned char类型的int字符串转换为int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22016146/