我使用win7和python 2.7。 我想将\ x1d \ xe3Gi%a \ x00 \ x00 \ x00 \ x00转换为1de347692561。 我如何成功进行转换?
我尝试过binascii.hexlify和codec.encode,但都失败了。[![在此处输入图片描述] [1]] [1]
答案 0 :(得分:0)
此代码在Python 2和3中均可使用。
Python 2.7.12 (default, Nov 12 2018, 14:36:49)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x = b'\x1d\xe3Gi%a\x00\x00\x00\x00'
>>> import binascii
>>> binascii.hexlify(x)
'1de34769256100000000'
答案 1 :(得分:0)
在您的代码中,您没有将正确的字符串十六进制化,而是将read_key_final
十六进制化,该字符串是从 list read_key_ascii_hex
的字符串表示形式派生的。因此,您得到
5b5c7831645c786533476925615c7830305c7830305c7830305c7830305d
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
[ \ x 1 d \ x e 3 G i % a \ x 0 0 \ x 0 0 \ x 0 0 \ x 0 0 ]
请改为尝试read_key_ascii_hex = ''.join(i.decode("hex" for i in read_key))
(或再进行两次replace
调用以删除括号)。