繁体   English   中英

如何在python中将unsigned char类型的int字符串转换为int

[英]How to convert string of ints of type unsigned char to an int in python

我有一个从C ++客户端连接到python服务器的套接字连接。 客户端在消息中放置了一个Diffie-Hellman密钥,但是当我查看该消息时,由于客户端上的未签名字符,这是乱码。

我已经能够使用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/'

密钥长度应为64。如何将该字符串转换为实际密钥的64个整数?

您可以使用nice struct模块对其进行解压缩。 这将为您提供64个小整数的元组( B表示“ unsigned char”):

>>> 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM