【发布时间】:2015-05-30 06:29:01
【问题描述】:
我在下面有一些 python 代码,我设法拼凑起来以实现我需要的东西,但是对于 python 来说,我相信应该有一个比我这里的解决方案更优雅的解决方案。
基本上我需要获取一个任意字符串 (MAGICSTRING) 并将它的每个字符转换为它们的十六进制值,然后将 0x00 填充到生成的十六进制字符串的开头和结尾,最后将最后整个填充字符串的长度。然后我需要将这些转义,以便稍后将其传递给套接字连接。
在示例中,MAGICSTRING 是 1234,'value' 的预期结果是 '\x00\x31\x32\x33\x34\x00\x06'
见下面的例子。
MAGICSTRING = '1234'
i=0
hexpass = ''
while i < len(MAGICSTRING):
hexpass = hexpass + hex(ord(MAGICSTRING[i]))[2:]
i += 1
strlen = len(MAGICSTRING) + 2
sendstr = '00'+ hexpass + '00' + '0' + hex(strlen)[2:]
value = sendstr.decode('hex')
赞赏可以对上述内容进行的任何改进。
【问题讨论】:
标签: python string python-2.7 hex