在Python中将字符串转换为十六进制

在Python中将字符串转换为十六进制,python,struct,binascii,Python,Struct,Binascii,下面是我的函数,它从数组构建消息。 有两种类型的检查: 检查“C”、“G”、“A”->[(“{'chip\u id':'00012345','Check\u type':'C'}”,1494273855.0)] 勾选“p”->[“{‘纬度’:43.5529109,‘经度’:1.4910036,‘勾选类型’:‘p’}”,1494273855.0] def生成(自我检查): #检查是一个数组。 ##1-关于变换不重新检查元组 _tuple=检查[0] #2-在Recepere le耦合id/类型

下面是我的函数,它从数组构建消息。 有两种类型的检查:

  • 检查“C”、“G”、“A”->[(“{'chip\u id':'00012345','Check\u type':'C'}”,1494273855.0)]

  • 勾选“p”->[“{‘纬度’:43.5529109,‘经度’:1.4910036,‘勾选类型’:‘p’}”,1494273855.0]

def生成(自我检查):
#检查是一个数组。
##1-关于变换不重新检查元组
_tuple=检查[0]
#2-在Recepere le耦合id/类型en字符串上。关于递归时间戳en字符串
_类型=_元组[0]
_时间戳=_元组[1]
#选择尾消息d apres le type元素
e=_type.find(“type':'”)
类型=_类型[e+8]
如果类型==“C”或类型==“A”或类型==“G”:
开始=_type.find(“'chip\u id':'”)
停止=_type.find(“,”)
芯片id=\类型[开始+12:停止]
a=int(binascii.hexlify(芯片id))

msg_build=bytes(type)+hex(int(_timestamp))+hex(struct.unpack)(“这是否符合要求:

msg = ''.join(["{:02X}".format(e) for e in bytearray("Hello, world!")])
''.join([chr(int(msg[i:i+2], 16)) for i in range(0, len(msg), 2)])

这里的问题是什么?是“加密”起作用而“解密”不起作用吗?你想要得到什么?我很好奇你是如何“发送消息”的。因为任何一个健全的网络库都应该为你处理这个转换。我认为调用
int(binascii.hexlify(一些字符串))没有意义
hexlify
经常返回包含数字以外的字符的值。例如,
int(binascii.hexlify(“K”)
ValueError:int()的无效文本以10为基数:“4b”
。恰好是“00012345”转换为包含所有数字的字符串。是的。我必须对字符串进行加密才能将其发送到消息中。这似乎有效。但是,然后,我需要解密此消息以从一开始获取字符串。但是,我找不到如何执行此操作。
msg = ''.join(["{:02X}".format(e) for e in bytearray("Hello, world!")])
''.join([chr(int(msg[i:i+2], 16)) for i in range(0, len(msg), 2)])