十六进制转换无效转义序列(Python)

时间:2016-03-03 03:44:14

标签: python hex sha digest

这是我的代码:

from Crypto.Hash import SHA
<Receive a variable from the user, 'var'>
hashed_var = SHA.new(var).digest()
fp = open("file.txt", 'a')
for i in range(0, len(hashed_var)):
    fp.write(hex(ord(hashed_var[i]))

这实质上是在文件中写入散列变量的十六进制表示。问题是,当我查看文件的内容时,有一些十六进制字符,如\ xd,\ x2等。当我把它放在一个字符串中时会抛出一个错误,我收到错误消息invalid \x escape。如何修复我的代码,以便所有十六进制字符都来自\ xhh?

1 个答案:

答案 0 :(得分:1)

您可以使用string formatting代替hex功能:

...
fp.write("\\x{0:02x}".format(ord(hashed_var[i])))