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