将\ x1d \ xe3Gi%a \ x00 \ x00 \ x00 \ x00转换为1de347692561

时间:2019-01-02 02:07:05

标签: python-2.7

我使用win7和python 2.7。  我想将\ x1d \ xe3Gi%a \ x00 \ x00 \ x00 \ x00转换为1de347692561。  我如何成功进行转换?

我尝试过binascii.hexlify和codec.encode,但都失败了。[![在此处输入图片描述] [1]] [1]

2 个答案:

答案 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调用以删除括号)。