2
正在有关python 2.4运行以下并产生下列散列:a1e48607773b80c62b80af2b6358c4faPython hashlib从Python 2.x到Python 3的MD5不一致?
#!/usr/bin/python
import md5
id=76561198302409766
temp = ""
for i in range(8):
temp += chr((id & 0xFF))
id >>= 8
m = md5.new("BE"+temp)
print m.hexdigest()
这是Python 3的转换后的代码:
#!/usr/local/bin/python3.3 -B
import hashlib
id = 76561198302409766
print ("Python 2.4 output: a1e48607773b80c62b80af2b6358c4fa")
m = hashlib.md5()
temp = ""
for i in range(8):
temp += chr((id & 0xFF))
id >>= 8
m.update("BE".encode('utf-8')+temp.encode('utf-8'))
print ("%s" % m.hexdigest())
这产生一个完全不同的哈希值。我能做些什么来修复它,使它产生与前面的脚本相同的散列?
这两个代码都没有的方式相同。你正在编码'temp'。 – ozgur